2011-08-10 2 views
0

우리는 stuts2 (mvc layer), spring 3.x (DI, 트랜잭션 경계 설정, 기타 관련 자료) 및 Hibernate 3.x (Persistence)를 사용하여 웹 응용 프로그램을 개발하고 있습니다.열린 세션보기 대체

이와 같은 또는 이와 유사한 플랫폼을 사용하는 다른 웹 응용 프로그램과 마찬가지로 동작의 기본 논리가 완료되어 최대 절전 세션이 이미 닫혀 있고 데이터베이스 트랜잭션이 종료 된 경우 우리가 알아야 할 예외는 다음과 같습니다. LazyInitializationException : 세션이 닫혔습니다.

이 문제를 해결하는 다양한 방법이 있으며 널리 수용되는 해결책 중 하나는 열기 세션보기 패턴입니다. 우리는 봄을 사용하고 있으므로 봄 지원을 쉽게 이용할 수 있습니다.

이 패턴에 대해 다른 좋은 대안이 있습니까?이 대안을 찾고 싶지는 않지만이 문제를 해결하기 위해 다른 좋은 방법과 효율적인 방법을 비교 검토하고 싶습니다. 사전에

감사 Umesh

답변

1

OSIV은 항상 사람들의 문제가 발생할 것으로 보인다. 여기에 나를 위해 잘 작동 한 전략이다 :

  1. 모든 절전 협회가 LAZY을 표시됩니다
  2. DAO 얻을 방법 모든 부울 loadChildren을은; 네, 자식 협회가 특정 요청 여부에 대한 필요 여부에 따라 get'ed 기업
  3. 의 자식 연결을 초기화 할 경우, 컨트롤러는 서비스와 DAO 층
  4. 보기 -에 T 또는 F로 loadChildren 전달 계층 액세스는 초기화 여부에 상관없이 연관을 탐색해야합니다.