2010-04-29 4 views
2

Spring 어플리케이션에서 LazyInitializationException이 발생합니다. OpenEntityManagerInViewFilter를 설정하여 FetchType.LAZY로 설정된 모든 관계를 가질 수 있으며 모든 작업이 수행됩니다. 나는 JSP 봄 보안 및 인쇄 LAZY 정보 같은 것을 통해 세션에 사용자 액세스하려고하면 문제는 :Spring에서 LazyInitializationException이 발생했습니다.

<sec:authentication property="principal" var="userAuth"/> 
${userAuth.organisation.id} 

와 내가 할 수 있지만 나는

org.hibernate.LazyInitializationException: could not initialize proxy - no Session 

를 얻을 수

내가

<sec:authentication-provider user-service-ref="userDAOImpl"> 
최대 절전 모드

를 사용하여 사용자를로드하는 DAO는 그냥 사용자 정의 인증 공급자가 문제없이 $ {userAuth.username}

이상한 점은 조직 객체를 EAGER로 설정하면 같은 문제가 발생한다는 것입니다.

문제는 sec : authentication을 통해 액세스하려고 할 때만 발생합니다. 모델에 사용자를 추가 한 다음 jsp의 데이터에 액세스하면 작동합니다.

왜 사용자에게 링크 된 객체에 저장된 데이터에 액세스 할 수 없습니까?

감사

+0

했던 LazyInitializationException이를 얻을 이 예외에 대한 stackoverflow 검색? – Bozho

답변

6

당신은 사용자 로그인시 주요 정보를 가져, 그 순간에 HTTP 세션에서 그들을 저장하기 때문에.

당신이 이후 HTTP 요청에서 해당 객체의 비 초기화 된 콜렉션에 액세스하려고하면, 최대 절전 모드 세션 (교장 처가 곳) (바로 로그인 후) 폐쇄, 당신은

관련 문제