一. 问题
有很多人使用Spring2.0配置多个SessionFactory的时候,遭遇了失败。
这并不是你的错误,而是版本出现了问题。
二. 解决方案
Spring初始的2.0版本并没有纳入多SessionFactory的支持,我在项目中
换到版本2.0.7是支持的。
配置参数
数据库: mysql5.0, mssql2003
spring: 2.0.7
hibernate: 3.0
Jboss jndi 数据源:
<jee:jndi-lookup id="MainSource" jndi-name="java:/MainDS"/>
<jee:jndi-lookup id="SubDatasource" jndi-name="java:/SubDS"/>
spring SessionFactory声明:
<bean id="mainSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="MainSource"/>
<property name="mappingResources">
<list>
<value>com/moon/test/model/TestObject1.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<bean id="subSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="SubDatasource"/>
<property name="mappingResources">
<list>
<value>com/moon/test/model/TestObject2.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
事务配置:采用JTA事务
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" />
有很多人使用Spring2.0配置多个SessionFactory的时候,遭遇了失败。
这并不是你的错误,而是版本出现了问题。
二. 解决方案
Spring初始的2.0版本并没有纳入多SessionFactory的支持,我在项目中
换到版本2.0.7是支持的。
配置参数
数据库: mysql5.0, mssql2003
spring: 2.0.7
hibernate: 3.0
Jboss jndi 数据源:
<jee:jndi-lookup id="MainSource" jndi-name="java:/MainDS"/>
<jee:jndi-lookup id="SubDatasource" jndi-name="java:/SubDS"/>
spring SessionFactory声明:
<bean id="mainSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="MainSource"/>
<property name="mappingResources">
<list>
<value>com/moon/test/model/TestObject1.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<bean id="subSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="SubDatasource"/>
<property name="mappingResources">
<list>
<value>com/moon/test/model/TestObject2.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
事务配置:采用JTA事务
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager" />