我在访问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属性时出现异常答案 0 :(得分:2)
xyz是一个由Groovy调用的Closure,好像它是一个方法,但它不是一个方法。所以它不是由Spring代理的(它只是一个字段),而且你没有任何事务行为。几乎没有理由在Service类中使用公共闭包(内部实用程序闭包很好)。
这应该有效:
void xyz() {
for (product in Product.list()) {
def category = product.categories.asList().first()
def title = category.title
}
}