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