Hibernate 冬眠关系

Hibernate 冬眠关系,hibernate,Hibernate,我想在加载时查询子对象 以下是我正在使用的查询: SELECT app FROM ApplicantPerson app left join app.gpaList gpa , DesignatedSchool ds WHERE app.applicantPersonId.applPersonId = ds.applPersonId AND app.appStatusCd = 'P' and gpa.verifiedInd= 1 AND ds.designateSta

我想在加载时查询子对象

以下是我正在使用的查询:

SELECT app FROM ApplicantPerson app left join app.gpaList gpa , DesignatedSchool ds
WHERE
    app.applicantPersonId.applPersonId = ds.applPersonId 
    AND app.appStatusCd = 'P'  and gpa.verifiedInd= 1
    AND ds.designateStatusCd = 'A' 
    AND ds.medInstId = ?  
    AND app.applicantPersonId.applYear = ?
    AND ds.applYear = ?
但是AppliantPerson有24条记录,child GPList有2条记录,其中一条已验证=1,第二条已验证=0

注:申请人与Gpa之间存在一对多关系

但是上面查询的输出是30条记录,gpalist得到2条记录


我需要在parent和child GPList中输出24条记录,其中一条记录已验证=1

where子句用于选择查询返回的实体,但它不修改查询返回的内容。如果查询返回
applicationPerson
的实例,并且您请求返回的人员的子项,那么无论查询用于获取这些人员的是什么,您都将获得所有子项

您的查询在
app
ds
之间执行笛卡尔乘积,因此得到的行数比您预期的多也就不足为奇了。使用distinct关键字获取不同的实例:

select distinct app from ...

我尝试了distinct,我得到了24条AppliantPerson记录,但孩子名单GPA名单2。GPA列表需要1验证ID=1这是不可能的。这不是查询所做的。一个实体就是一个实体。它总是包含数据库中的内容,而不是查询的结果。好的,谢谢,我有其他选择@在休眠状态下过滤。这是正确的方法吗。你能推荐我吗?我是说用