2011-02-23 3 views

답변

2

XYZ는이 방법 인 것처럼 그루비에 의해 호출되는 폐쇄입니다 카테고리의 제목 속성에 액세스 할 때 나는 예외를 받고 있어요,하지만 방법이 아니다


class ProductService { 
    static transactional = true 
    def xyz() { 
    def products = Product.list() 
    products.each { product -> 
     def category = product.categories.asList().first() 
     def title = category.title 
    } 
    } 
} 

 

. 그래서 Spring (그것은 단지 필드)에 의해 프록시 화되지 않으며, 트랜잭션적인 동작을 얻지 못합니다. Service 클래스에서 공용 클로저를 사용하는 것은 결코 좋은 이유가 아닙니다 (내부 유틸리티 종료가 좋습니다).

이 작동합니다 :

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

미안 나는 그것을 폐쇄하지만 그것은 방법 및 임이 문제가 계속지고 있지, starange 부분 그것이 내 로컬 및 스테이징 서버에서 작동하지만에 실패했다 프로덕션 서버. –