在一个Hibernate会话中可以有多个事务吗?
我不清楚这是否是允许的.在我的代码中,我有一个长时间运行的线程,从阻塞队列中获取项目,这取决于队列上的内容,它可能需要创建并保存一个hibernate对象,或者可能不需要执行任何操作.
每个项目都是不同的,因此,如果项目1已保存,而项目2未能保存,无论出于何种原因,我都不想这样做,以防止项目1被添加到数据库中.
因此,要做到这一点,最简单的方法是针对需要创建新会话、打开事务、保存新对象、提交事务、关闭会话的每个项目
然而,这意味着 for each 项目创建一个新的会话,这似乎与Hibernates自己不按请求进行会话模式的建议背道而驰.因此,我的替代方案是在线程中创建一个会话,然后在需要创建新对象时根据需要打开并提交一个新事务.但我没有看到这种方法的例子,我不确定它是否真的有效.