2013-06-14 4 views
0

JPQL запрос как для ManyToOne однонаправленные и двунаправленные отношенияJPQL Запрос ManyToOne


class ParentEntity{ 
     @Id 
     String parentId1; //composite key 
     @Id 
     String parentId2; 
     @ManyToOne 
     ChildEntity childEntityRef; 
    } 

class ChildEntity { //ManyToOne Unidirectional Relationship case 
     @Id 
     String childId1; //composite key 
     @Id 
     String childId2; 
    } 
    or 
    class ChildEntity { //ManyToOne Bidirectional Relationship case 
     @Id 
     String childId1; //composite key 
     @Id 
     String childId2; 
     @OneToMany 
     List<ParentEntity> parentEntitiesref; 
    } 

_______________________________________________________________________ 
||  ParentEntity Table    || ChildEntity Table  || 
||_________________________________________||__________________________|| 
parentId1|parentId2|childId1_FK|childId1_FK|| childId1| childId2  || 
||_______|_________|___________|___________||_________|________________|| 
|| p11 |p21  | c11  |c21  || c11 | c21   || 
|| p12 |p22  | c11  |c21  || c12 | c22   || 
|| p13 |p23  | c12  |c22  || c13 | c23   || 
|| p14 |p24  | c12  |c22  ||   |    || 
||_______|_________|___________|___________||_________|________________|| 

мне нужно JPQL запрос доступа Список всех childEntity что не связаны с определенная ParentEntity (в обоих случаях однонаправленная и двунаправленная связь).

Example - 
For ParentEntity[p11,p21] get All other disconnected List of ChildEntity([c12,c22],[c13,c23]) 

С наилучшими пожеланиями,
Gaurav Гупта.

ответ

0
select c from ChildEntity c where c.childId != (
    select p.childEntityRef.childId from ParentEntity p where p.parentId = :parentId) 
+0

Спасибо за ответ, я обновил свой вопрос для составного ключа сущности, может вы мне помочь в ключеник случае композитного –

+0

Reloved с запросом «выберите с из ChildEntity где с! = ( выберите р. childEntityRef from ParentEntity p где p.parentId =: parentId) –

Смежные вопросы