Nhibernate 对Spring和Hibernate的两个数据库实例使用声明式transactionmanagement

Nhibernate 对Spring和Hibernate的两个数据库实例使用声明式transactionmanagement,nhibernate,transactions,sqlite,spring.net,declarative,Nhibernate,Transactions,Sqlite,Spring.net,Declarative,我正在寻找一个解决方案,使用Spring(V1.3.2)和NHibernate(V3.2.0)以及Spring的声明性事务管理与两个独立的SQLite数据库实例通信 目前,我可以读写两个数据库实例,但事务管理只适用于一个数据库(DbProvider_DB1) “为什么”对我来说很清楚,但我如何才能对两个数据库使用声明性事务管理?我是否需要两个事务管理器?如果需要,我如何定义第二个事务管理器并使用它 这是我的配置,没有什么奇怪的,只是为了完整: dao.xml Thanx解决方案是使用Hiber

我正在寻找一个解决方案,使用Spring(V1.3.2)和NHibernate(V3.2.0)以及Spring的声明性事务管理与两个独立的SQLite数据库实例通信

目前,我可以读写两个数据库实例,但事务管理只适用于一个数据库(DbProvider_DB1)

“为什么”对我来说很清楚,但我如何才能对两个数据库使用声明性事务管理?我是否需要两个事务管理器?如果需要,我如何定义第二个事务管理器并使用它

这是我的配置,没有什么奇怪的,只是为了完整:


dao.xml
Thanx

解决方案是使用HibernateTransactionManager的TxScopeTransactionManager安装

<object id="transactionManager" type="Spring.Data.Core.TxScopeTransactionManager, Spring.Data">
    <property name="TransactionSynchronization" value="Always"/>
</object>

我想我读过spring.net论坛上的一篇文章,其中指出在使用多个数据库时不可能使用声明性事务管理,因为spring无法仅从属性确定使用哪个事务管理器。
[Transaction]
public TEntity Save( TEntity entity )
{
  CurrentSession.Save( entity );
  return entity;
}
<object id="transactionManager" type="Spring.Data.Core.TxScopeTransactionManager, Spring.Data">
    <property name="TransactionSynchronization" value="Always"/>
</object>