문제

저는 NHibernate를 사용하여 웹 애플리케이션을 개발 중입니다.다음 SQL 쿼리에 대해 NHibernate 쿼리를 작성하는 방법을 알려주실 수 있나요?

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

기본적으로 자동 조인이지만 Nhibernate에서 이것을 작성하는 방법을 모르겠습니다.속성 이름이 테이블 열 이름과 동일하다고 가정해 보겠습니다.

도움이 되었습니까?

해결책

원래 엔터티에서 선택을 수행하고 두 개체 간의 연결을 "lazy = false"로 만들 수 있습니다.엔터티가 매핑되어 있는 한 둘 다 반환되며 개체에 액세스하려고 할 때 지연 로딩 예외가 발생하지 않습니다.

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

업데이트:

내 생각에는 컬렉션을 헤매지 않고도 컬렉션을 초기화할 수 있는 NHibernateUtil.Initialise()보다 실제로 더 좋은 것이 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top