您好任何人都建议我何时使用 merge()而不是 save()?
我遇到了一些问题,例如当我使用 save()方法保存域时,它在某些情况下正常工作但在某些情况下它会创建"org.hibernate.LazyInitializationException"
异常对我来说。
我可以使用直接 merge()方法来保存域实例而不是 save()吗?
答案 0 :(得分:5)
您可以看到内部调用merge()
方法的save()
和save()
方法,区别在于它们的行为,即如果您将对象存储在HTTP会话中以后想要访问但是这个对象失去了它的持久化上下文,merge()方法将分离对象的状态合并回当前的Hibernate会话。但是如果你在分离对象上调用了save()方法,你将会面对你提到的性感异常(org.hibernate.LazyInitializationException
)。
详情请见documentation。