2009-02-06 5 views
4

나는 Grails/GORM을 배우고 있으며 이해 했으므로 세션의 도메인 객체를 저장하지 않는 것이 가장 좋습니다 (잠재적 수정 사항은 http://jira.codehaus.org/browse/GRAILS-978 참조).Grails/GORM 도메인 객체를 세션에 저장하는 이유는 무엇입니까?

해결 방법은 간단합니다. 단순히 도메인 객체의 참조 ID를 세션에 저장 한 후 다음 요청에서 객체를 다시 검색하십시오.

제 질문은 도메인 객체를 세션에 안전하게 저장할 수없는 이유는 무엇입니까? 나는 그 뒤에있는 기술적 인 것들을 이해하려고 노력하고있다.

감사합니다.

답변

12

내 관심사 중 하나는 GORM (내가 Hibernate라고 말할 것이다)이 작동중인 Hibernate의 세션이 닫히고 끝날 때 플러시되는 각 요청에 대해 open-session-in-view 패턴을 사용한다는 것이다.

HTTP 세션에 GORM 객체를 저장한다는 것은 이전의 Hibernate 세션에서 객체를 분리하고 새로 생성 된 세션에 다시 부착한다는 것을 의미합니다. 이로 인해 두 버전의 개체간에 충돌이 발생할 수 있습니다.

+0

이로 인해 데이터베이스 연결에 문제가 발생할 수도 있습니다. 우리는 8 시간 이상 http 세션에 도메인 클래스를 저장할 때 직접 손으로 보았습니다. –

관련 문제