【发布时间】:2021-11-12 11:06:48
【问题描述】:
我一直在尝试使用 JPA 规范,但我不知道如何转换此查询:
select employees.* from employees
left join qualification_assignments on employees.qualification_profile_id =qualification_assignments.qualificationProfile_id
where qualification_id in <some list of strings>
我已经能够转换只包含琐碎谓词的简单查询。但是,似乎没有任何更高级用例的文档。如果有人能指出我正确的方向,我将不胜感激。
我的尝试看起来像这样,导致各种异常:
Join<Employee, QualificationProfile> assignmentJoin = root.join("qualificationProfile");
return criteriaQuery.where(criteriaBuilder.in(assignmentJoin.get("qualificationAssignments"))
.in(searchCriteria.getQualificationIds())).getGroupRestriction();
以下内容对我来说最有意义,但连接不起作用。
Join<Employee, QualificationAssignment> assignmentJoin = root.join("qualificationProfile");
return criteriaQuery.where(criteriaBuilder.in(assignmentJoin.get("qualificationId"))
.in(searchCriteria.getQualificationIds())).getGroupRestriction();
数据模型如下所示:
【问题讨论】:
-
我们更喜欢 QueryDsl。使用该工具,您可以流畅而简单地编写查询。
-
你可以在persistence.xml中设置
,然后你看看查询是什么。请分享它和你的愿望 sql。 -
@LászlóTóth 我无法为您提供输出,因为我无法编写不会导致异常的查询。问题中提供了我的愿望 sql。我只需要 JPA 规范 API 中的表示
-
我想,把记录的纯sql语句发给我,jpa生成什么。
标签: mysql sql jpa join specifications