我一直在嘗試用JPA規范作業,但我不知道如何轉換這個查詢:
我一直在嘗試用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</span>Employee, QualificationProfile>/span> assignmentJoin = root. join("qualificationProfile")。
return criteriaQuery.where(candalBuilder.in(assignmentJoin.get("qualificationAssignments"))
.in(searchCriteria.getQualificationIds()).getGroupRestriction()。
下面的方法對我來說是最有意義的,但是連接不起作用。
Join<Employee, QualificationAssignment>/span> assignmentJoin =root. join("qualificationProfile")。
return criteriaQuery.where(candalBuilder.in(assignmentJoin.get("qualificationId"))
.in(searchCriteria.getQualificationIds())).getGroupRestriction()。
資料模型是這樣的:
uj5u.com熱心網友回復:
感謝Lazlo Toth的幫助,我走上了正軌。非常感謝你。
最終的規范看起來是這樣的:
Join<Employee, QualificationAssignment> /span> profiles = root
.join("qualificationProfile", JoinType.LEFT)
.join("qualificationAssignments")。
profiles.on(files.get("qualification").get("id")
.in(new HashSet<>(searchCriteria.getQualificationIds())));
return profiles.isNotNull()。
現在我有了一個正常運作的解決方案,我將仔細看看元類。我發現https://www.logicbig.com/tutorials/java-ee-tutorial/jpa/criteria-api-in-predicate.html很有幫助。
uj5u.com熱心網友回復:
https://www.logicbig.com/tutorials/java-ee-tutorial/jpa/criteria-api-left-join-on-condition.html
也許這有幫助。你可以生成Meta類,如Employee_。
Root<Employee> employee = query.from(Employee.class);
ListJoin<Employee, QualificationProfile> profiles = employee.join(Employee_.qualificationProfile, JoinType.LEFT)。
profiles.on(criteriaBuilder.in(files.get(QualificationProfile_.qualificationAssignments), searchCriteria.getQualificationIds())。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329868.html
標籤:

