2011-04-21 3 views
0

개체가 지연 초기화되었는지 테스트 할 수 없습니다. 여기서 내가 뭘 잘못하고 있니?grails 속성이 지연되었거나 초기화되지 않았습니까?

public void testLazy(){ 
    User lazyUser = User.withCriteria { 
     like("userId", 'test') 
     fetchMode("preferences", FetchMode.LAZY) 
    }.get(0) 

    assertFalse("DOM objects of user were not lazy initialized", 
     GrailsHibernateUtil.isInitialized(lazyUser, "preferences")) 
} 

답변

1

괜찮습니다.

컬렉션 (하위 도메인 객체) 속성의 경우 이 false이고 문자열 속성이 true 인 경우 정확히 동일한 코드 조각이 작동했습니다. 어쩌면 FetchMode.LAZY은 보장할만한 것이 아닙니다. 간단한 유형을 요청하면 어쨌든 가져옵니다.

preferences '유형이란 무엇입니까?

+0

적절한 개체 그래프가있는 개체입니다. 오이. 나는 grails 1.3.6을 사용하고 있습니다 - 당신은 무엇을 사용하고 있습니까? –

+0

나는 1.3.5에있다. SQL 로깅을 활성화하면 어떤 쿼리가 로그에 있습니까? 만약 당신이 컬렉션 속성에서 그것을 시도해도 될까요? –

관련 문제