NHibernate의 ICriteria API를 사용하여 표현해야하는 SQL 쿼리가 있습니다.NHibernate - ICriteria를 사용하여 서브 쿼리에 참여하기
SELECT u.Id as Id,
u.Login as Login,
u.FirstName as FirstName,
u.LastName as LastName,
gm.UserGroupId_FK as UserGroupId,
inner.Data1,
inner.Data2,
inner.Data3
FROM dbo.User u inner join
dbo.GroupMember gm on u.Id = gm.UserAnchorId_FK
left join
(
SELECT
di.UserAnchorId_FK,
sum(di.Data1) as Data1,
sum(di.Data2) as Data2,
sum(di.Data3) as Data3
FROM
dbo.DailyInfo di
WHERE di.Date between '2009-04-01' and '2009-06-01'
GROUP BY di.UserAnchorId_FK
) inner ON inner.UserAnchorId_FK = u.Id
WHERE gm.UserGroupId_FK = 195
시도는 지금까지 매핑 '사용자'와 'DailyInfo'클래스 (내 개체)와 DailyInfo은 사용자 개체의 속성을 객체 만들기를 포함했다. 그러나, 그들 사이의 외래 키 관계를 매핑하는 방법 그러나 나는이 하위 쿼리 대신에 조인 왼쪽 필요가 웹
<one-to-one></one-to-one>
<one-to-many></one-to-many>
<generator class="foreign"><param name="property">Id</param></generator> (!)
솔루션은 WHERE 절에서 하위 쿼리와 함께 할 일반적으로 즉, 여전히 신비 조인하지 않는 행에 NULL 값이 리턴되는지 확인하십시오.
외부 쿼리에 대한 기준을 사용해야한다고 생각하고 하위 쿼리를 나타내려면 DetachedCriteria와 '조인'을 형성하고 있습니까? 나는 순간에 완전히 확실하지 않다, 나머지으로
<!-- User mapping -->
<bag name="DailyInfos" inverse="true">
<key column="UserAnchorId_FK" />
<one-to-many class="Namespace.To.DailyInfo, Namespace" />
</bag>
<!-- DailyInfo mapping -->
<many-to-one name="User" column="UserAnchorId_FK" />
: