Azd*_*der 9 grails hibernate grails-orm lazy-initialization
你org.hibernate.LazyInitializationException在Grails中最常见的地方在哪里,原因是什么,你是如何解决的?
我认为这个例外对于新手来说很多,所以如果你提供更多的例子,它会很棒.
Ami*_*ain 10
让我们举一个例子:
class Book {
String title
Author author
}
class Author {
...
}
Book book = Book.get(1)
Run Code Online (Sandbox Code Playgroud)
我们知道,默认提取模式在域类中是懒惰的.考虑到上面的例子,假设我们得到了book对象,那么Book对象会自动附加到hibernate会话对象,即第一级缓存.在域对象从会话对象中分离然后我们尝试获取book.author之后,此时它会引发Lazy初始化异常.
所以解决方案是,要么将获取模式作为渴望,要么使用下面给出的代码将您的book对象附加到hibernate会话:
if(!book.isAttached()){
book.attach()
}
Run Code Online (Sandbox Code Playgroud)
上面给出的描述是场景之一.可能会有更多.我请求其他人请分享.
| 归档时间: |
|
| 查看次数: |
7249 次 |
| 最近记录: |