[英]grails getting lazzy initialization exception in transactional service
我在訪問SET對象的屬性時,在我的事務服務中得到一個典型的hibernate Lazy初始化異常。
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
class ProductService {
static transactional = true
def xyz() {
def products = Product.list()
products.each { product ->
def category = product.categories.asList().first()
def title = category.title
}
}
}
我在訪問類別的title屬性時遇到異常
xyz是一個由Groovy調用的Closure,好像它是一個方法,但它不是一個方法。 所以它不是由Spring代理的(它只是一個字段),而且你沒有任何事務行為。 幾乎沒有理由在Service類中使用公共閉包(內部實用程序閉包很好)。
這應該工作:
void xyz() {
for (product in Product.list()) {
def category = product.categories.asList().first()
def title = category.title
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.