簡體   English   中英

grails在事務服務中獲得lazzy初始化異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM