当我读到hibernate‘持久化’和‘保存’方法之间的区别时,许多文章都特别强调了"Save方法可以在事务边界之外执行“
这句话让我真的很困惑,我读到了足够公平的文章来理解这句话的真正意义,但没有运气!现在我要澄清以下几点。
问题1
这是真的吗?如果是这样的话
问题2
假设事务意味着物理DB事务
据我所知,没有事务可以执行数据库,那么在事务边界之外意味着什么呢?
问题3
假设事务意味着逻辑事务
根据我所引用的材料,“会话”列出了逻辑事务。因此,即使它使用持久化()或保存()来持久化数据,也只有在显式提交或session.flush或关闭会话之后才会刷新和提交。
由于会话是逻辑事务,没有会话就不能执行任何执行,那么在事务之外保存()工作是什么意思?
如果有人能给我一个明确的详细答案,那将是一个很大的帮助,非常感谢!
发布于 2018-05-30 11:06:16
这是一篇很好的文章,篇幅太长,无法复制:https://www.journaldev.com/3481/hibernate-session-merge-vs-update-save-saveorupdate-persist-example。实质上:
Q1:是的,这是真的。这意味着您可以调用session.save(object),而不必先执行session.beginTransaction()。你一定还有个公开的会议。
Q2: transaction意味着Hibernate的事务,可能会话仍然会对数据库使用事务,但事务很短,而且可能是隐式的(自动提交)。
Q3:它意味着在beginTransaction启动的Hibernate事务之外。
https://stackoverflow.com/questions/50602587
复制相似问题