쿼리를 캐시 할 때 페치 (지연 연결)를 가져온 쿼리로 캐싱을 시도하고 있지만 LazyInitianlizationException
이 표시됩니다.HQL, 컬렉션 및 쿼리 캐시 - LazyInitializationException
DAO
의 콜렉션에서 Hibernate.initialize()
을 사용해 보았는데 성공하지 못했습니다.
엔티티와 컬렉션에는 모두 캐시 주석이 있습니다.
쿼리 캐시의 컬렉션 ID에 대한 엔티티를로드하기 위해 2 레벨 캐시를 사용하여 최대 절전 모드로 설정하지 않아야합니까?
나는 OpenSessionInView
필터를 사용하고 싶지 않습니다.
편집 : 문제를 해결하는 DAO 방법의 Hibernate.initialize(). 웬일인지 처음에는 작동하지 않았다. 쿼리 나 조건을 사용하면 조인/가져 오기 프로필이 수행되지 않습니다. 수동으로 수행해야합니다. (조금 실망 스럽습니다)
서비스 계층에 @transaction 주석이 붙어 있습니다. 트랜잭션 외부에서 예외가 발생합니다. DAO 메소드에서 컬렉션을 초기화하려고했지만 결과가 없습니다. (getter를 호출하고 hibernate.initialize를 사용하는 것만으로) – miklesw