【发布时间】:2018-05-30 10:40:19
【问题描述】:
好吧,当我读到 hibernate 'Persist' 和 'Save' 方法之间的不同时,许多文章都特别强调了这一点
“保存方法可以在事务边界之外执行”
这句话让我很困惑,我读了足够多的文章来理解这句话的真正含义,但没有运气!!!现在我有以下几点要澄清。
问题 1
这是真的吗?? 如果是真的那么
问题 2
[假设事务是指物理数据库事务]
据我所知,在没有事务的情况下不会发生数据库执行,那么事务边界之外是什么意思?
问题 3
[假设事务意味着逻辑事务]
根据我参考的材料,“会话”列出了逻辑事务。因此,即使它使用 persist() 或 save() 来持久化数据,它也只会在显式提交或 session.flush 或关闭会话后刷新和提交。
既然 session 是逻辑事务,没有 session 就无法执行,那么 save() 在事务外工作是什么意思?
如果有人能给我一个清晰详细的答案,那将是一个很大的帮助 非常感谢!!!
【问题讨论】:
-
@BillyFrost 谢谢!我删除了标签
-
javadoc 肯定不会谈论这个。它将唯一的区别指定为
save()生成、分配和返回标识符。 -
@ewramner ,是的,我看过那个帖子,我的这个问题只有在阅读了该帖子中接受的答案后才会出现。这就是为什么我用特定的细节创建了这个线程。所以我不认为这是重复的。谢谢!
标签: java database hibernate rdbms