26/10/2011, 09:15
|
| | Fecha de Ingreso: octubre-2011
Mensajes: 1
Antigüedad: 13 años Puntos: 0 | |
multiples unidades de persistencia en jpa No se si es correcto crear este tema aqui
Hola os expongo mi caso:
tengo una aplicacion basada en jpa. Quiero hacer referencia a 2 bbdd distintas con lo que he editado dos entityManagerFactory distintos haciendo referencia a 2 datasource de las bbdd.
Aqui esta mi fichero de configuracion:
<?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:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:annotation-config />
<tx:annotation-driven transaction-manager="transactionManagerPersonal" />
<tx:annotation-driven transaction-manager="transactionManagerProductividad" />
<bean id="datasourceProductividad"
class="org.springframework.jdbc.datasource.DriverM anagerDataSource"
p:driverClassName="${jdbc.productividad.driverClas sName}" p:url="${jdbc.productividad.url}"
p:username="${jdbc.productividad.username}" p:password="${jdbc.productividad.password}" />
<alias name="datasourceProductividad" alias="dataSourceProductividad"/>
<bean id="datasourcePersonal"
class="org.springframework.jdbc.datasource.DriverM anagerDataSource"
p:driverClassName="${jdbc.personal.driverClassName }" p:url="${jdbc.personal.url}"
p:username="${jdbc.personal.username}" p:password="${jdbc.personal.password}" />
<alias name="datasourcePersonal" alias="dataSourcePersonal"/>
<bean id="transactionManagerPersonal" class="org.springframework.orm.jpa.JpaTransactionM anager">
<property name="entityManagerFactory" ref="entityManagerFactoryPersonal" />
</bean>
<bean id="transactionManagerProductividad" class="org.springframework.orm.jpa.JpaTransactionM anager">
<property name="entityManagerFactory" ref="entityManagerFactoryProductividad" />
</bean>
<bean id="entityManagerFactoryPersonal"
class="org.springframework.orm.jpa.LocalContainerE ntityManagerFactoryBean"
p:dataSource-ref="datasourcePersonal" p:jpaVendorAdapter-ref="jpaAdapter"
p:persistenceUnitName="procesosDesatendidosPersona l">
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading .InstrumentationLoadTimeWeaver" />
</property>
</bean>
<bean id="entityManagerFactoryProductividad"
class="org.springframework.orm.jpa.LocalContainerE ntityManagerFactoryBean"
p:dataSource-ref="datasourceProductividad" p:jpaVendorAdapter-ref="jpaAdapter"
p:persistenceUnitName="procesosDesatendidosProduct ividad">
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading .InstrumentationLoadTimeWeaver" />
</property>
</bean>
<bean id="jpaAdapter" class="org.springframework.orm.jpa.vendor.Hibernat eJpaVendorAdapter"/>
</beans>
Y tambien he definido en persistence.xml las unidades correspondientes.
En los DAO´S que estoy utilizando he aplicado :
@PersistenceContext(unitName="procesosDesatendidos Personal")
public void setEntityManager(final EntityManager entityManager) {
this.entityManager = entityManager;
}
@PersistenceContext(unitName="procesosDesatendidos Productividad")
public void setEntityManager(final EntityManager entityManager) {
this.entityManager = entityManager;
}
El caso es que la aplicacion no esta funcionando correctamente ya que si quiero insertar o actualizar datos en alguna de las bbdd no realiza estas operaciones
¿Seria posible realizar transacciones?
¿Tendria que utilizar JTA?
Gracias |