在我的spring应用程序中,我需要在两个不同的数据库(PostgreSQL和MySQL)中使用hibernate,而且我对配置不是很在行,所以我需要一些关于如何配置的指南
我正在使用hibernate-postgresql的以下配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.project.domain.myDomain</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
</value>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url">
<value>${db.url}</value>
</property>
<property name="username" >
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean
class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />在DAO中,我为sessionFactory制作了一个自动线缆。
发布于 2011-01-18 18:41:21
唯一的方法是必须使用一个堆栈(SessionFactory、Hibernate模板等)访问数据源。然后,您可以在业务类中注入您想要使用的HIbernate模板(如果您想同时访问两个数据库,也可以同时使用两者)。
下面是一个带有显式配置的DAO示例。
<bean id="db2SessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
...
</bean>
<bean id="db1Dao" class="ch.sbb.uno.dao.hibernate.UnoHibernateDaoSupport" scope="prototype">
<property name="sessionFactory" ref="db1SessionFactory" />
</bean>
<bean id="db2Dao" class="ch.sbb.uno.dao.hibernate.UnoHibernateDaoSupport" scope="prototype">
<property name="sessionFactory" ref="db2SessionFactory" />
</bean>发布于 2011-01-18 18:46:21
如果您有两个数据库,并且希望进行两阶段提交,那么最好对这两个数据库都使用XA驱动程序。
发布于 2011-01-18 20:30:37
您可能需要XA驱动程序。
请参见下面的示例
http://docs.codehaus.org/display/BTM/Home
https://stackoverflow.com/questions/4723045
复制相似问题