【发布时间】:2011-05-26 15:11:49
【问题描述】:
HibernateSession方法saveOrUpdate(Object)和merge(Object)有什么区别?当给定对象在相应的表中不存在时,这两种方法似乎都会生成一个SQLINSERT 语句,而当它确实存在时会生成一个UPDATE。
【问题讨论】:
-
您是否真的阅读了您链接到的 java 文档? :)
-
是的,我做到了。我看到的主要区别是
merge()加载了一个不在会话中的对象,而saveOrUpdate()没有。这是否意味着部分对象的saveOrUpdate()覆盖所有字段,而merge()仅覆盖那些已设置为非空值的字段?还是两者都产生相同的结果?