gpt4 book ai didi

java - 为什么要使用 session.beginTransaction & transaction.commit

转载 作者:行者123 更新时间:2023-12-04 05:50:07 26 4
gpt4 key购买 nike

hibernate :
如果将任何 transient 对象添加到 hibernate session 中,为什么当我关闭 session 时不能 hibernate (在其脏检查之后)。

有没有这样的选择。
此外,如果存在这样的选项,那么为什么我们要开始交易并说它要提交。 (session.beginTransaction())

一旦我们说 session.close(),transaction.commit() 的哪些功能也可以完成,对吗?
请任何人向我解释这一点。

最佳答案

Transaction demarcation对于正确使用 RDBMS 至关重要,这就是您需要使用 Hibernate 启动和提交事务的原因。

关于您的问题,您不能在关闭 session 时隐式关闭事务,但有一种常见做法是在关闭事务后立即关闭 session 。 Hibernate 以 contextual sessions 的形式为这种模式提供了特殊支持。 .

一些框架(Spring、EJB 等)通过消除以编程方式开始和提交事务的需要而走得更远——它们提供声明性事务方法,允许您以声明方式将方法标记为事务性方法。也就是说,当您输入此类方法时,它们会打开上下文 session (如果需要)并开始事务,并在您从它返回时提交事务并关闭 session (如果需要)。

关于java - 为什么要使用 session.beginTransaction & transaction.commit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10171856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com