Hibernate Envers에서, 어떤 fetch 타입이 설정되었는지에 관계없이 엔티티의 모든 관련된 콜렉션들이 지연되어로드된다. 따라서 다른 엔티티 (물론 두 감사 대상 모두)의 콜렉션을 가진 엔티티에 대한 auditquerying을 수행하면 컬렉션은 처음에는 SetProxy
입니다 (디버깅 할 때 볼 수 있음).Hibernate Envers : Initiating Proxys
어떻게 프록시를 초기화 할 수 있습니까? Hibernate.initialize()
을 사용하는 것은 효과가 없다. (나는 Hibernate와 Envers가 다른 프록시 객체를 사용하기 때문에 의심된다.) 나는 항목을 반복하여 세트를 초기화 할 수 있다는 것을 알고 있지만 엔티티에 여러 콜렉션이 있고 유지 보수 문제는 언급하지 않기 때문에이 옵션이 나를위한 옵션이 아닙니다.
최대 절전 모드 세션이 이미 닫혀있을 때 (도메인 개체를 dtos로 변환) 나중에 컬렉션에 액세스하기 때문에 열심히 초기화해야합니다.
나는 최대 절전 모드 3.5.6을 사용하고있다.
나는이 일을 할 수 없다! Envers는 가져 오기 계획을 무시하는 것 같습니다! SELECT Fetch 모드로 열심히 가져 오기 위해 설정 한 엔티티가 여러 개 있습니다 (항상 2 차 캐시에 있음 - 읽기 전용 및 영원).JSP를 렌더링 할 때 게으른 초기화 오류가 발생합니다. 고통은 당신이 알고 있습니다. :(Grrr! – les2