【发布时间】:2014-11-11 15:52:15
【问题描述】:
你可以在一个 Hibernate Session 中有多个事务吗?
我不清楚这是否是可取的。在我的代码中,我有一个长时间运行的线程并从阻塞队列中获取项目,这取决于队列中的内容,它可能需要创建和保存一个休眠对象,或者它可能不需要做任何事情。
每个项目都是不同的,所以如果项目 1 被保存并且项目 2 未能保存任何我不想阻止项目 1 被添加到数据库的原因。
所以最简单的方法是为每个需要创建的项目创建一个新会话、打开事务、保存新对象、提交事务、关闭会话
但是,这意味着为每个项目创建一个新会话,这似乎违背了 Hibernates 自己的建议,即不执行 Session Per Request Pattern。所以我的替代方法是在线程中创建一个会话,然后在需要创建新对象时根据需要打开并提交一个新事务。但我没有看到这种方法的例子,我不确定它是否真的有效。
【问题讨论】:
标签: java database hibernate session transactions