는 "SUBSET"기능이 있습니다합니까 JPQL은 다음과 나는 간단한 데이터 모델이
- 엔티티 1 : EmployeeAsset. 여기에는 Employee 객체에 대한 참조가 있습니다.
- 엔티티 2 : EmployeeJobPosition. 여기에는 직원에 대한 참조도 있습니다. 그것은 또한 OrganisationUnitEntry (이것은 또 다른 엔티티 클래스 임) 객체의 컬렉션을 포함하는 JobPosition (이것은 또 다른 엔티티 클래스입니다) 객체에 대한 참조를 가지고 있습니다.
매개 변수로 사용자가 선택한 OrganisationUnitEntry 개체가 있습니다 (이 ouEntries를 호출합시다). ouEntries의 상위 집합 인 OrganisationUnitEntry 컬렉션이있는 JobPosition과 관련된 모든 EmployeeAsset 객체를 반환하는 쿼리가 필요합니다 (예 : ouEntries는 jobPosition.organisationUnitEntries의 하위 집합 임).
그래서 쿼리가 같은 동적으로 구축 할 수있다 :SELECT ea
FROM EmployeeAsset ea, EmployeeJobPosition ejp
WHERE ea.employee = ejp.employee
AND :orgUnitEntry1 MEMBER OF ejp.jobPosition.organisationUnitEntries
...
AND :orgUnitEntryN MEMBER OF ejp.jobPosition.organisationUnitEntries
(orgUnitEntry1 - N 그냥 ouEntries의 요소이다).
그러나 서브셋 유형 함수는 훨씬 더 깔끔하지 않을 수 있으며, 보통 이것을 선호하는 정적/명명 된 쿼리에 넣을 수 있습니다. 예 :
...
AND :ouEntries SUBSET OF ejp.jobPosition.organisationUnitEntries
그런 검색어를 가장 잘 작성하는 방법에 대한 아이디어가 있으십니까?
JPA 사양은 무엇이라고 말합니까? –
SUBSET 함수에 대해 아무 것도 찾을 수 없었습니다. 그 이유는 다음과 같습니다. :) 단일 함수가 아닐 수도 있습니다. 대신 동적 쿼리를 생성하기위한 대체/더 좋은 방법을 찾고 있습니다. 정적 인 방법으로 예를 들어 – brent777