2011-02-23 17 views
0

我在访问SET对象的属性时在我的事务服务中收到典型的hibernate懒惰初始化异常。Grails在事务服务中获取lazzy初始化异常

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 
    } 
    } 
} 

 

我得到异常访问

回答

2

xyz是由Groovy中被调用,好像它是一个方法的闭幕类别的标题属性时,但它不是一个方法。所以它不是被Spring代理的(它只是一个字段),而且你没有交易行为。在Service类中公开关闭几乎没有什么好的理由(内部公用事业关闭很好)。

这应该工作:

void xyz() { 
    for (product in Product.list()) { 
     def category = product.categories.asList().first() 
     def title = category.title 
    } 
} 
+0

对不起错误我做了一个封闭,但它不是它的方法和进出口仍然得到这个问题,starange的部分是它的工作原理我的本地和分期服务器上,但未能上生产服务器。 – 2011-02-24 11:04:04