개체 목록을 반환하기 위해 HQL로 엔티티를 쿼리하려고합니다. 쿼리는 정확한 행 수를 반환하지만 첫 번째 항목 (즉, 반환 된 첫 번째 행은 모든 항목에 걸쳐 복제됩니다). 이 문제의 원인은 무엇일까요?중복을 반환하는 엔티티 목록에 대한 NHibernate HQL 조인 쿼리
HQL 쿼리는
using (ISession session = NHibernateHelper.OpenSession())
{
var query = session.CreateQuery(@"
select facts from Fact as facts
inner join facts.FactorDimension as facDim
inner join facts.MarketDimension as markDim
inner join facDim.TargetDimension as tarDim where
markDim.MarketID = :marketId
and tarDim.TargetID = :targetId
and facts.ReportYear = :untilReportYear
and facts.ReportMonth <= :untilReportMonth
and facts.ReportMonth >= 1
");
query.SetString("targetId", targetId.ToString());
query.SetString("marketId", marketId.ToString());
query.SetString("untilReportMonth", untilPeriod.Month.ToString());
query.SetString("untilReportYear", untilPeriod.Year.ToString());
return query.List<Fact>();
}
하고 매핑 파일
<class name="Fact" table="Fact">
<composite-id>
<key-many-to-one name="MarketDimension" column="MarketID"
class="MarketDimension"/>
<key-many-to-one name="FactorDimension" column="FactorID" class="FactorDimension"/>
</composite-id>
<property name="ReportMonth" />
<property name="ReportYear" />
</class>
감사합니다.