Ola pessoal,
Ja estou a dois dias com um problema que não consigo resolver.
No meu projeto era usado somente um banco (postgres), agora teremos que persistir em dois bancos diferentes(postgres e um banco mysql), estamos usando TransactionManager do Spring, eu consigo fazer a aplicação enchergar a base do Mysql mas não consigo inserir registros na mesma. Se alguem poder me ajudar eu agradeço bastante.
Segue codigo.
AplicattionContext.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="transactionManager1" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager1"/>
<bean id="transactionManager2" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory2" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager2"/>
<context:annotation-config />
<!--
Identifica os beans anotados com @Service, @Repository, @Controller
-->
<context:component-scan base-package="br.gov.ar" />
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="postgres" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="database" value="POSTGRESQL" />
</bean>
</property>
</bean>
<bean id="entityManagerFactory2"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="arceintranet" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="database" value="MYSQL" />
</bean>
</property>
</bean>
</beans>
persistence.xml
<?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="postgres">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.gov.ar.aut.entidades.Usuario</class>
<class>br.gov.ar.aut.entidades.Perfil</class>
<class>br.gov.arce.aut.entidades.Menu</class>
<class>br.gov.arce.aut.entidades.Funcao</class>
<class>br.gov.arce.aut.entidades.File</class>
<class>br.gov.arce.aut.entidades.Aplicacao</class>
<class>br.gov.ar.sp.model.Setor</class>
<properties>
<property name="hibernate.archive.autodetection" value="off" />
<!--Configuracoes de dialeto e conexao-->
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://172.18.0.35:5432/arce"/>
<property name="hibernate.connection.username" value="###" />
<property name="hibernate.connection.password" value="###" />
<!--Configuracoes de Debug-->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="use_sql_comments" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<!--Configuração do pool de c3p0-->
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
</properties>
</persistence-unit>
<persistence-unit name="arceintranet">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>br.gov.ar.aut.entidades.UsuarioMysql</class>
<properties>
<property name="hibernate.archive.autodetection" value="off" />
<!--Configuracoes de dialeto e conexao-->
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/arceintranet" />
<property name="hibernate.connection.username" value="$$$" />
<property name="hibernate.connection.password" value="$$$" />
<!--Configuracoes de Debug-->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="use_sql_comments" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<!--Configuração do pool de c3p0-->
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
</properties>
</persistence-unit>
</persistence>
No DaoImpl:
@Service("baseMysqlDaoJpa")
public class BaseMysqlDaoJpa extends JpaDaoSupport implements BaseMysqlDao {
private final Logger logger = Logger.getLogger(BaseMysqlDaoJpa.class.getName());
/**
* <p>
* Configura o gerenciador de entidades do JPA
* </p>
*
* @param emf
* Gerenciador de entidades do JPA
**/
@Autowired
public void setEntityManagerFactoryAuto(@Qualifier(value="entityManagerFactory2")EntityManagerFactory emf) {
super.setEntityManagerFactory(emf);
}
Obrigado Desde já.