2017-12-01 6 views
0

Ich habe folgende Einheit Struktur zu erhalten:JPA Prädikat prent Einheit auf Basis von untergeordneter Entität Zählung

@Entity 
class ParentClass { 
    @Id 
    int id; 
    @ManyToMany 
    List<ChildClass> childAttribute; 
} 

@Entity 
public class ChildClass {  
    @Id 
    int id;  
} 

ich schreiben mag ein Prädikat zu holen, die Muttergesellschaften, bei denen die Größe von Attribute mit dem Namen childAttribute ist „Zero“ . Danke.

+0

Verwenden Sie zweidimensionalen Weg Mapping .. –

+0

https://stackoverflow.com/questions/29316485/hibernate-one-to-many-mapping-configuration –

+0

Könnten Sie uns bitte zeigen, was Sie bisher versucht haben? – crizzis

Antwort

0

getan werden kann, wie folgt:

CriteriaBuilder cb = em.getCriteriaBuilder(); 
CriteriaQuery<ParentClass> cq = cb.createQuery(ParentClass.class); 
Root<ParentClass> root = cq.from(ParentClass.class); 
cq.select(root) 
    .where(cb.isEmpty(root.get("childAttribute"))); 

TypedQuery<ParentClass> query = em.createQuery(cq); 
List<ParentClass> result = query.getResultList(); 

Equivalent JPQL Abfrage ist:

SELECT p FROM ParentClass p where p.childAttribute IS EMPTY 

Für weitere Details zu JPQL syntax entnehmen.

Verwandte Themen