C#WinForm与Spring.net和NHibernate集成问题
Spring.net版本1.3.2Nhibernate版本3.2
数据库采用oracle10g
搭建好环境后,开始单元测试可以,后来就报:Spring.Transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction ---> NHibernate.TransactionException: Begin failed with SQL exception ---> System.Data.OracleClient.OracleException: ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句
底层的存储是:
public class RepositoryImpl<T> : HibernateDaoSupport,IRepository<T> where T : Entity
{
#region IRepository<T> 成员
public virtual T Load(object id)
{
try
{
T o = this.HibernateTemplate.Load<T>(id);
if (o == null)
{
throw new RepositoryException("返回数据对象为空");
}
else
{
return o;
}
}
catch (DataAccessException ex)
{
throw new RepositoryException("加载数据对象失败", ex);
}
}
事务部分采用
<object id="BaseTransactionManager" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject,Spring.Data" abstract="true">
<property name="PlatformTransactionManager" ref="transactionManager"/>
<property name="TransactionAttributes">
<name-values>
<add key="Save*" value="PROPAGATION_REQUIRED"/>
<add key="Set*" value="PROPAGATION_REQUIRED"/>
<add key="Finish*" value="PROPAGATION_REQUIRED"/>
<add key="Update*" value="PROPAGATION_REQUIRED"/>
<add key="Delete*" value="PROPAGATION_REQUIRED"/>
<add key="Add*" value="PROPAGATION_REQUIRED"/>
<add key="Get*" value="PROPAGATION_REQUIRED,readOnly"/>
<add key="Find*" value="PROPAGATION_REQUIRED,readOnly"/>
<add key="Load*" value="PROPAGATION_REQUIRED,readOnly"/>
<add key="*" value="PROPAGATION_REQUIRED"/>
</name-values>
</property>
</object>
麻烦高手指点一下,问题在哪呢 ,跪谢! --------------------编程问答-------------------- 这个。。 没搞过单元测试 --------------------编程问答-------------------- 我也遇到相同的问题,判有人解答一下 --------------------编程问答-------------------- 暂时只能是不引用事务来解决。如
将原来的
<object id="Manager.OmsSupplier" parent="BaseTransactionManager">
<property name="Target">
<object type="Service.Implement.OmsSupplierManager, Service">
<property name="CurrentRepository" ref="Repository.OmsSupplier"/>
</object>
</property>
</object>
改为
<object id="Manager.OmsSupplier" type="Service.Implement.SupplierManager,Service">
<property name="CurrentRepository" ref="Repository.Supplier"/>
</object> --------------------编程问答-------------------- 还有知道如何解决:Spring.Transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction ---> NHibernate.TransactionException: Begin failed with SQL exception ---> System.Data.OracleClient.OracleException: ORA-01453: SET TRANSACTION 必须是事务处理的第一个语句 --------------------编程问答-------------------- 您好,那你后来怎么解决的啊?我现在就玉带哦这个问题
补充:.NET技术 , C#