2011-02-23 18 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