我正在寻找使用hibernate / jpa方法的一些真实场景
答案 0 :(得分:1)
以下是一些例子:
persist()
。虽然merge()
会在不存在的情况下持久存在,但在我们使用merge()
来保存新对象时,在某些极端情况下(至少对我来说)发生了奇怪的事情。 merge()
有用的一种情况是,当您第一次从db获取对象时,将其传递给视图/控制器层(或以任何其他方式分离),更改它并且您希望保存更改。使用merge()
这将自动完成,否则您必须通过id从db获取对象并从分离的字段中复制所有字段(如果您不确切知道更改的内容)。getReference()
您不会将整个对象加载到会话中,您只需将其引用设置为附加对象,这样您最终会(至少)使用find()
进行一次查询。另一方面,find()
加载整个对象,无需为此指定用例。