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?