IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Connexion à deux bases de données


Sujet :

Spring Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut Connexion à deux bases de données
    Bonjour,

    J'ai une application utilisant Spring, JPA, Struts2 et Hibernate où je dois me connecter à deux bases et insérer des données dans les deux.

    J'ai essayé de définir deux dataSources, deux entityManagerFactory et cela fonctionne quandje récupère juste les données mais quand j'insère les données dans le persistance unit qui à été déclaré en deuxième cela ne marche pas, je n'ai aucun message d'erreur mais la requête n'est pas exécutée??

    Voici mon applicationContext.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
     
        <!-- Chargement de propriétés -->
        <bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <value>classpath:hibernate.properties</value>
            </property>
        </bean>
     
        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
     
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource1.driver}" />
            <property name="url" value="${datasource1.url}" />
            <property name="username" value="${datasource1.username}" />
            <property name="password" value="${datasource1.password}" />
        </bean>
     
        <bean id="entityManagerFactory"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
            <property name="dataSource" ref="dataSource" />
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="database" value="${database}" />
                    <property name="showSql" value="${hibernate.showSql}"/>
                </bean>
            </property>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                </props>
            </property>
            <property name="persistenceUnitName" value="PU"/>
        </bean>
     
        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
            <property name="entityManagerFactory" ref="entityManagerFactory" />
        </bean>
     
        <tx:annotation-driven transaction-manager="transactionManager"  />
     
        <bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource2.driver}" />
            <property name="url" value="${datasource2.url}" />
            <property name="username" value="${datasource2.username}" />
            <property name="password" value="${datasource2.password}" />
        </bean>
     
        <bean id="entityManagerFactory2"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
            <property name="dataSource" ref="dataSource2" /> 
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="database" value="${database}" />
                    <property name="showSql" value="${hibernate.showSql}"/>
                </bean>
            </property>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                </props>
            </property>
            <property name="persistenceUnitName" value="PU2"/>
     
        </bean>
     
        <bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager" >
            <property name="entityManagerFactory" ref="entityManagerFactory2" />
        </bean>
     
        <tx:annotation-driven transaction-manager="transactionManager2"  />
     
     
    	<!-- DAO -->
    	<bean id="dao1" class="com.Dao1" />
    	<bean id="dao2" class="com.Dao2" />
     
     
    </beans>

    et mon persistance.xml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" 
        xmlns="http://java.sun.com/xml/ns/persistence" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
            http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
     
    	<persistence-unit name="PU">
            <class>
            com.Classe1</class>
     
        </persistence-unit>
     
    	<persistence-unit name="PU2">
    		<class>
    		com.Classe2</class>
    		<class>
    		com.Classe3</class>
    	</persistence-unit>
     
    </persistence>

    Avez-vous une idée d'où peux venir le fait que je ne puisse insérer que dans les beans qui sont en premier dans mon fichier de persistance?

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Jack-Ob Voir le message
    Bonjour,

    J'ai une application utilisant Spring, JPA, Struts2 et Hibernate où je dois me connecter à deux bases et insérer des données dans les deux.

    J'ai essayé de définir deux dataSources, deux entityManagerFactory et cela fonctionne quandje récupère juste les données mais quand j'insère les données dans le persistance unit qui à été déclaré en deuxième cela ne marche pas, je n'ai aucun message d'erreur mais la requête n'est pas exécutée??

    Voici mon applicationContext.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
     
        <!-- Chargement de propriétés -->
        <bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <value>classpath:hibernate.properties</value>
            </property>
        </bean>
     
        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
     
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource1.driver}" />
            <property name="url" value="${datasource1.url}" />
            <property name="username" value="${datasource1.username}" />
            <property name="password" value="${datasource1.password}" />
        </bean>
     
        <bean id="entityManagerFactory"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
            <property name="dataSource" ref="dataSource" />
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="database" value="${database}" />
                    <property name="showSql" value="${hibernate.showSql}"/>
                </bean>
            </property>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                </props>
            </property>
            <property name="persistenceUnitName" value="PU"/>
        </bean>
     
        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
            <property name="entityManagerFactory" ref="entityManagerFactory" />
        </bean>
     
        <tx:annotation-driven transaction-manager="transactionManager"  />
     
        <bean id="dataSource2" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource2.driver}" />
            <property name="url" value="${datasource2.url}" />
            <property name="username" value="${datasource2.username}" />
            <property name="password" value="${datasource2.password}" />
        </bean>
     
        <bean id="entityManagerFactory2"
            class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
            <property name="dataSource" ref="dataSource2" /> 
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                    <property name="database" value="${database}" />
                    <property name="showSql" value="${hibernate.showSql}"/>
                </bean>
            </property>
            <property name="jpaProperties">
                <props>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                </props>
            </property>
            <property name="persistenceUnitName" value="PU2"/>
     
        </bean>
     
        <bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager" >
            <property name="entityManagerFactory" ref="entityManagerFactory2" />
        </bean>
     
        <tx:annotation-driven transaction-manager="transactionManager2"  />
     
     
    	<!-- DAO -->
    	<bean id="dao1" class="com.Dao1" />
    	<bean id="dao2" class="com.Dao2" />
     
     
    </beans>

    et mon persistance.xml


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0" 
        xmlns="http://java.sun.com/xml/ns/persistence" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
            http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
     
    	<persistence-unit name="PU">
            <class>
            com.Classe1</class>
     
        </persistence-unit>
     
    	<persistence-unit name="PU2">
    		<class>
    		com.Classe2</class>
    		<class>
    		com.Classe3</class>
    	</persistence-unit>
     
    </persistence>

    Avez-vous une idée d'où peux venir le fait que je ne puisse insérer que dans les beans qui sont en premier dans mon fichier de persistance?
    apparement vous voulez utiliser @Transactional ?

    mauvaise nouvelle : cela ne fonctionne qu'avec un seul transactionManager dans l'applicationContext…

    vous n'avez probablement pas fait attention à tous les warnings générés au démarrage parce que normalement il doit y en avoir un qui signale la présence de plus d'un transaction manager…

    Solution :

    utiliser les instructions <aop: … > ou AspectJ pour spécifier les méthodes transactionnelles…

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    Bonjour, merci de m'aider.

    J'ai essayé de trouver des exemples sur aop mais sans grand succès par rapport à mon problème.

    N'est ce pas plutôt mon fichier de persistance qui est mal déclaré car dès que je dois réaliser une transaction sur une entité définie dans la deuxième base celle ci ne s'exécute pas.

    Quelqu'un a-t-il une idée?

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Jack-Ob Voir le message
    Bonjour, merci de m'aider.

    J'ai essayé de trouver des exemples sur aop mais sans grand succès par rapport à mon problème.

    N'est ce pas plutôt mon fichier de persistance qui est mal déclaré car dès que je dois réaliser une transaction sur une entité définie dans la deuxième base celle ci ne s'exécute pas.

    Quelqu'un a-t-il une idée?
    je vous ai répondu :

    @Transactional est incapable de gérer plusieurs transactionManager.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <beans …
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    …
    	xsi:schemaLocation="…				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    ">
    …
        <aop:aspectj-autoproxy />
    …
     
    <aop:config>
    	<aop:pointcut id="YOUR_POINT_ID" expression="execution(POINTCUT_PATTERN) "/>
    …
    	<aop:advisor advice-ref="SERVICE_REFERENCE" pointcut-ref="YOUR_POINT_ID"/>
    …
    </aop:config>
     
     
    <tx:advice id="SERVICE_REFERENCE" transaction-manager="THE_TRANSACTIONMANAGER_BEAN_ID">
    		<tx:attributes>
    			<tx:method name="METHOD_NAME_PATTERN" propagation="YOUR_PROPAGATION" read-only="TRUE_OR_FALSE"/>
    		</tx:attributes>
    </tx:advice>
    …

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    Merci de m'aider par contre peux tu me préciser les valeurs à indiquer?

    Faut - il que je déclare un tx:advice et un aop:config pour chacun de mes transactionManager (ou juste un pour le deuxième et pour le premier je laisse l'annotation @transactional)?

    Je ne vois pas quelle expression mettre dans aop:pointcut?

    Pour chacune des méthode de mes dao dois-je préciser cette ligne? Ou il y a-t-il un moyen de toutes les préciser d'un coup?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tx:method name="METHOD_NAME_PATTERN" propagation="YOUR_PROPAGATION" read-only="TRUE_OR_FALSE"/>
    A quoi correspond la propagation?

    Merci d'avance car je commence à désespérer

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par Jack-Ob Voir le message
    Merci de m'aider par contre peux tu me préciser les valeurs à indiquer?

    Faut - il que je déclare un tx:advice et un aop:config pour chacun de mes transactionManager (ou juste un pour le deuxième et pour le premier je laisse l'annotation @transactional)?

    Je ne vois pas quelle expression mettre dans aop:pointcut?

    Pour chacune des méthode de mes dao dois-je préciser cette ligne? Ou il y a-t-il un moyen de toutes les préciser d'un coup?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <tx:method name="METHOD_NAME_PATTERN" propagation="YOUR_PROPAGATION" read-only="TRUE_OR_FALSE"/>
    A quoi correspond la propagation?

    Merci d'avance car je commence à désespérer
    vous pouvez le faire uniquement pour le deuxième mais personnellement je préfère voir toute la config des transactions à un seul endroit…

    pour l'expression : il faut lire la doc…
    par exemple toutes les méthodes d'une classe =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    expression( * path.of.my.class.*(..) )
    la propagation : il est temps que vous lisiez la doc sur les transactions !
    REQUIRES_NEW, REQUIRED, …
    cela signifie ce que le transaction manager doit faire : toujours créer une nouvelle transaction, réutiliser l'existante s'il y en a une, etc.
    (ce sont les mêmes paramètres que pour @Transactional…)

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 26
    Points : 25
    Points
    25
    Par défaut
    J'ai essayé de suivre tes conseils et la FAQ de Spaing:

    http://java.developpez.com/faq/sprin...integrationJpa


    Mon appli se lance sans problème mais je dois avoir une erreur car aucune transaction s'effectue.

    Voici mon applicationContext.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
     
        <!-- Chargement de propriétés -->
        <bean name="propertyPlaceholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
                <value>classpath:hibernate.properties</value>
            </property>
        </bean>
     
        <aop:aspectj-autoproxy />    
     
        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
            <property name="entityManagerFactory" ref="entityManagerFactory" />
        </bean>
     
        <bean id="transactionManagerSecond" class="org.springframework.orm.jpa.JpaTransactionManager">
            <property name="entityManagerFactory" ref="entityManagerFactorySecond" />
        </bean>
     
        <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="persistenceUnitName" value="PU"/>
            <property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
            <property name="dataSource" ref="dataSource" />
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
            </property>       
        </bean>
     
        <bean id="entityManagerFactorySecond" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
            <property name="persistenceUnitName" value="PU2"/>
            <property name="persistenceXmlLocation" value="classpath:META-INF/persistence2.xml"/>
            <property name="dataSource" ref="dataSourceSecond" />
            <property name="jpaVendorAdapter">
                <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
            </property>
        </bean>
     
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource1.driver}" />
            <property name="url" value="${datasource1.url}" />
            <property name="username" value="${datasource1.username}" />
            <property name="password" value="${datasource1.password}" />
        </bean>
     
        <bean id="dataSourceSecond" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${datasource2.driver}" />
            <property name="url" value="${datasource2.url}" />
            <property name="username" value="${datasource2.username}" />
            <property name="password" value="${datasource2.password}" />
        </bean>
     
     
        <aop:config>
     
            <aop:advisor advice-ref="txAdviceDao"
                pointcut="execution(* com.dao.MyDao.*.*(..))" />
     
            <aop:advisor advice-ref="txAdviceService"
                pointcut="execution(* com.jpa.Jpa.*.*(..))" />
        </aop:config>
     
        <tx:advice id="txAdviceDao" transaction-manager="transactionManagerSecond">
            <tx:attributes>
                <tx:method name="*" isolation="DEFAULT" timeout="10"
                    propagation="MANDATORY" read-only="false"
                    rollback-for="org.springframework.dao.DataAccessException" />
            </tx:attributes>
        </tx:advice>
     
        <tx:advice id="txAdviceService" transaction-manager="transactionManagerSecond">
            <tx:attributes>
                <tx:method name="*" isolation="DEFAULT" timeout="10"
                    propagation="REQUIRES_NEW" read-only="false"
                    rollback-for="org.springframework.dao.DataAccessException" />
            </tx:attributes>
        </tx:advice>
     
        <aop:config>
            <aop:advisor advice-ref="txAdviceDao2"
                pointcut="execution(* com.dao.Dao2.*.*(..))" />
            <aop:advisor advice-ref="txAdviceService"
                pointcut="execution(* com.jpa.Jpa2.*.*(..))" />
        </aop:config>
     
        <tx:advice id="txAdviceDao2" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="*" isolation="DEFAULT" timeout="10"
                    propagation="MANDATORY" read-only="false"
                    rollback-for="org.springframework.dao.DataAccessException" />
            </tx:attributes>
        </tx:advice>
     
        <tx:advice id="txAdviceService2" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="*" isolation="DEFAULT" timeout="10"
                    propagation="REQUIRES_NEW" read-only="false"
                    rollback-for="org.springframework.dao.DataAccessException" />
            </tx:attributes>
        </tx:advice>
     
    </beans>

    Puis j'insère mes EntityManagerFactory dans mes Dao comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <bean id="dao" class="com.dao.Dao" > 
    	   <property name="entityManagerFactory"><ref bean="entityManagerFactory"/></property>	   
    	</bean>
    Voyez-vous d'où vient le problème?

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    pas de transaction ==

    soit les expressions des pointcut ne correspondent à aucune méthode

    soit les classes ne sont pas "weaved" :
    serait-ce que je ne vois pas les classes de vos DAO et de vos services dans des <bean > …

    je n'en suis plus certain mais il me semble que <aop: > ne s'occupe que de ce qui est <bean > …

Discussions similaires

  1. [MySQL] Connexion à deux bases de données
    Par bourbita.thameur dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/04/2009, 12h23
  2. Connexion à deux bases de données
    Par nbinot dans le forum JDBC
    Réponses: 7
    Dernier message: 29/10/2008, 15h46
  3. [MySQL] Connexion à deux bases de données sur la même page !
    Par Mike91 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/06/2008, 10h27
  4. Réponses: 13
    Dernier message: 10/12/2005, 13h34
  5. [MySQL] Connexion à deux bases de données
    Par genova dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/09/2005, 00h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo