-2

가 나는 일에 대한 해결책을 찾을 수없는 이상한 행동이 게으른 폐쇄하지 읽어 들이기 .. 동작의 I 경험은 평소 no session or session was closed 클래식 LazyInitializationException 없다NHibernate에 게으른는 = 여분이 더 세션이나 세션이

  • 세션 당 요청 세션이 Spring.NET OpenSessionInViewModule
  • 와 경계 세션이 열리고에 경계 : 나는 때문에 상황에 맞는 세션과 게으른로드 속성/컬렉션에 액세스하려고하지만, 이것으로 나의 경우 문맥 (웹 요청)
  • lazy = "extra"또는 "set"(매핑 집합 모음)과 함께 "목록"(매핑 목록 컬렉션)으로 컬렉션 된 엔터티 (이 문제는 주로 게으른 = 추가로 발생합니다 ..)
  • 추가 cound에 대한 카운트 문을 수행하지만, 전체 콜렉션을 액세스하는 일반적인 문제 조사 후 예외

를 throw 수 :

더 세션이
  • 을 열어서
    • 객체가 모든 세션에 묶여되지 않습니다
    • Session.Clear 또는 Session.Evict에 대한 호출은 이상한 .. 나는 이런 일이 왜 명시 적 이유를 찾을 수 없습니다

      Spring.NET WebSupportModule가 등록되지 않은
    • (작동 제거 된 예를 들어 해당하므로, 어떠한 게으른)되었다 행동은 내가 NHprof에서 프로필 경우, 나는 새로운 세션에서 예외를 보았습니다, 즉 문맥 세션이 올바르게 작동합니다, 하지만 예외가 발생하면 그 예외는 2 차 세션에서 시각화됩니다. 세션 및 단일 컨텍스트 세션 이 열립니다.

    다른 사람이 그런 상황을 일으킬 수있는 이유를 알고 있습니까? 미리 감사드립니다.

  • +1

    이것이 모두 설정되는 방법에 대한 코드 샘플을 게시하면 도움이됩니다. –

    +0

    질문에서 말한 것처럼 코드 샘플은 중요하지 않습니다. 중요한 것은 컨텍스트에 대한 설명입니다. 컨텍스트/구성의 모든 부분은 각 제품 설명서의 모범 사례로 작성됩니다 – Hoghweed

    +0

    질문이 무엇인지 확실하지는 않지만'lazy = "extra"와'.count() '필요성을 알고 있어야합니다. 'select * '와 in memory count가 아닌'select count (*)'를 수행하는 열린 세션. – Rippo

    답변

    0

    일부 코드는 확인하지 않고 진단하기가 어렵지만 문제는 very similar to this으로 들립니다. 링크 된 케이스에서 OpenSessionInView는 다른 위치 (처음 두 글 머리 점과 유사)에 세션 컨텍스트를 설정하는 것 외에도 사용되고 WebSupportModule은 등록되지 않았습니다 (마지막 지점 에서처럼).

    한편, 나는 Spring.NET에 대해 아무것도 모른다.