2010-05-14 5 views
0

db 지속성을 위해 nHibernate를 사용하고 있습니다. 두 테이블 사이에 일대 다 관계가 정의되어 있습니다. 쿼리를 수행하고 데이터를 가져 오려고하면 "많은"테이블에서 올바른 수의 행을 가져 오지만 행은 반환 된 첫 번째 행의 중복입니다.중복 레코드

table1 (one), table2 (many). 내가 table1에서 특정 레코드를 얻는 기준 쿼리를 만듭니다. 그런 다음 table2에서 모든 관련 레코드를 가져올 것으로 예상됩니다. 즉, table1은 주문을 보유하고 table2는 항목을 보유합니다. 나는 table1을 조회하여 4 개의 항목이있는 주문을 얻는다. 나는 table2에서 나온 네 가지 항목을 모두 볼 것으로 예상하지만 첫 번째 항목은 네 번 반복됩니다.

무슨 일이 일어날 지 아무도 모르는 사람이 있습니까?

답변

1

문제가 table2의 복합 키인 것으로 나타났습니다. composite-id 매핑을 포함 시켰고 정상적으로 작동했습니다.

코드 here 덕분에 Equals 및 GetHashCode 오류를 해결할 수 있습니다.

감사합니다.

0

NHibernate는 쿼리를 실행하기 위해 join을 수행합니다. 다른 결과를 얻으려면 DistinctEntityRootTransformer를 사용하십시오.

+0

하지만 실행중인 쿼리가 올바른 데이터를 반환하고있어 매핑 문제 일 수 있습니다. 소리가 맞습니까? – czuroski

관련 문제