小编典典

Hibernate 中的 session.persist() 和 session.save() 有什么区别?

all

谁能告诉我在 Hibernate中persist()vs的优势是什么?save()


阅读 90

收藏
2022-08-07

共1个答案

小编典典

这个论坛帖子

persist()定义明确。它使瞬态实例持久化。但是,它不能保证标识符值将立即分配给持久实例,分配可能发生在刷新时间。规范没有这么说,这是我遇到的问题persist()

persist()还保证如果在事务边界之外调用它,它不会执行 INSERT 语句。这在具有扩展会话/持久性上下文的长时间运行的对话中很有用。

需要类似的方法persist()

save()不保证相同,它返回一个标识符,如果必须执行 INSERT
以获取标识符(例如“身份”生成器,而不是“序列”),则无论您是在内部还是外部,此 INSERT
都会立即发生一笔交易。这在具有扩展会话/持久性上下文的长期对话中不好。

2022-08-07