Grails何时使用merge()而不是save()?

时间:2014-11-06 07:47:39

标签: hibernate java-ee grails

您好任何人都建议我何时使用 merge()而不是 save()

我遇到了一些问题,例如当我使用 save()方法保存域时,它在某些情况下正常工作但在某些情况下它会创建"org.hibernate.LazyInitializationException"异常对我来说。

我可以使用直接 merge()方法来保存域实例而不是 save()吗?

1 个答案:

答案 0 :(得分:5)

您可以看到内部调用merge()方法的save()save()方法,区别在于它们的行为,即如果您将对象存储在HTTP会话中以后想要访问但是这个对象失去了它的持久化上下文,merge()方法将分离对象的状态合并回当前的Hibernate会话。但是如果你在分离对象上调用了save()方法,你将会面对你提到的性感异常(org.hibernate.LazyInitializationException)。 详情请见documentation