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条记录,其中一条记录已验证=1where子句用于选择查询返回的实体,但它不修改查询返回的内容。如果查询返回
applicationPerson
的实例,并且您请求返回的人员的子项,那么无论查询用于获取这些人员的是什么,您都将获得所有子项
您的查询在app
和ds
之间执行笛卡尔乘积,因此得到的行数比您预期的多也就不足为奇了。使用distinct关键字获取不同的实例:
select distinct app from ...
我尝试了distinct,我得到了24条AppliantPerson记录,但孩子名单GPA名单2。GPA列表需要1验证ID=1这是不可能的。这不是查询所做的。一个实体就是一个实体。它总是包含数据库中的内容,而不是查询的结果。好的,谢谢,我有其他选择@在休眠状态下过滤。这是正确的方法吗。你能推荐我吗?我是说用