繁体   English   中英

Hibernate中的多个事务

[英]Multiple Transactions in Hibernate

是否有多次在一个会话上调用beginTransaction的风险? 我的意思是例如:

session.beginTransaction();
session.saveOrUpdate(object1);
// .... some works
session.beginTransaction();
session.delete(object2);
// ... some other works
session.getTransaction.commit();


我这样做了,似乎没有问题(任何异常或警告)。 事实上,我想知道当我以这种方式使用事务时会发生什么。

javadocs给出了解释

beginTransaction()开始一个工作单元并返回关联的Transaction对象。 如果需要新的基础事务,则开始事务。 否则,在现有基础事务的上下文中继续新工作 返回的Transaction对象的类由属性hibernate.transaction_factory确定。

所以 - 它没有效果,它继续使用现有的交易。 所以不要这样做,因为它可能会混淆读者(包括你)。 如果提交第一个事务然后启动第二个事务,则可以有多个事务。

是。 不会抛出任何编译/运行时异常。 但是,可能会出现意外结果,从而导致部分未保存的数据。 我有时会遇到这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM