Grails 2.2.1
我的简单域:
class Article{
SortedSet<Photo> photoGallery
//helper method
Photo getMainPhoto(){
Photo mainPhoto = photoGallery.find{it.mainPhoto}
return mainPhoto
}
}
一对多的照相馆被懒洋洋地拿来
我从.gsp View 调用
getMainPhoto
方法。问题是有时(并非总是)尝试从懒惰的一对多照片库中获取主照片时出现
LazyInitializationException
错误。为什么这偶尔发生,而不是每次我调用该方法时发生?那是正常的吗?我又该如何解决这个问题,而又不急于建立关系呢?
谢谢
最佳答案
不确定,但是当我尝试访问一个在将来内部具有嵌套对象的对象时,我经常遇到相同的错误,因此有时在由于懒惰而进行的并发执行中,之前并未获取所有嵌套域对象使用它们。
通过在 View 上使用相同的属性,可以避免该问题。
因此,如果您在行下添加打印语句或其他内容
Photo mainPhoto = photoGallery.find{it.mainPhoto}
那么它应该被加载。
我不确定,但是我想如果您这样添加它:
Photo mainPhoto = photoGallery.find{it.mainPhoto}
println("mainPhoto=${mainPhoto}")
那么它应该在GSP页面上呈现。