如何在结果集映射中映射两个相等的实体

时间:2020-09-10 16:55:49

标签: java sql hibernate

我试图在一组结果中分配具有两个位置类型的实体,这些实体返回不同的值,在某些情况下,其中一个实体返回null,并且在这种情况下,两个实体都采用相同的值。我在做什么错了?

<sql-result-set-mapping name="searchLocation.employer.mapping">
     <entity-result entity-class="com.asa.entity.Person"></entity-result>
     <entity-result entity-class="com.asa.entity.Location" ></entity-result>
     <entity-result entity-class="com.asa.entity.Location" ></entity-result>
     <column-result name="idFact" class="java.lang.Long"/>
 </sql-result-set-mapping>


<named-native-query name="searchLocation.employer"
     result-set-mapping="searchLocation.employer.mapping">
     <query>
     SELECT
         per.*,
         locPer.*,
         locEmpr.*,
         fact.factId AS idFact
     FROM Person per
     INNER JOIN Request resq ON resq.resqNumIdent = per.perNumIdent
     LEFT JOIN Location locPer ON locPer.locId = per.perLoc
     INNER JOIN Factory fact ON fact.factPerson = per.perId
     INNER JOIN LocationFactory locFact ON locFact.locFactory = fact.factId
     INNER JOIN Location locEmpr ON locFact.locLocation = locEmpr.locId
     WHERE resq = :resqNumber
     </query>
 </named-native-query>

0 个答案:

没有答案