2008-08-23 4 views
1

NHibernate를 사용하여 웹 응용 프로그램을 개발하고 있습니다. 어떻게 다음과 같은 SQL 쿼리에 대한 NHibernate에 쿼리를 작성하는 방법을 말해 줄래 :(N) 최대 절전 자동 가입

SELECT v1.Id 
FROM VIEW v1 
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id 
ORDER BY v1.Position 

그것은 기본적으로의 A 오토 조인하지만 난 NHibernate에이를 작성하는 방법을 모르겠어요. 속성 이름이 테이블 열 이름과 같습니다.

답변

1

원래 엔터티에서 선택을 수행하고 두 개체 "lazy = false"간의 연결을 만들 수 있습니다. 엔터티가 매핑되어있는 한 둘 다 반환되며 개체에 액세스하려고하면 lazyloadingexception을 얻지 못할 것입니다.

"lazy = false"를 매핑하지 않으려면 결과를 반복하고 어떤 종류의 작업을 수행 할 수 있습니다 (예 : null인지 여부, if (v1.AssocatedObject == null) { }) 세션이 열려있는 동안 데이터가로드되도록합니다.

업데이트 :

내가 거기에 실제로 그 이상의 더 나은 생각에, NHibernateUtil.Initialise()를 통해 방황하지 않고 컬렉션을 초기화 할 수 있습니다.