2012-04-10 1 views
0

J'ai deux entitésJPQL sélectionner des entités assigend/non affectés à une relation

class A{ 

} 

class B{ 
    @OneToMany() 
@JoinTable(name = "a_b", joinColumns = { @JoinColumn(name = "a_id") }, inverseJoinColumns = { @JoinColumn(name = "b_id") }, uniqueConstraints = { @UniqueConstraint(columnNames = { "b_id" }) }) 
private Set<A> aSet; 
} 

La relation est facultative donc pas tous les A sera affecté à un B et non tous les B doit avoir tout A (s) .

J'ai besoin de deux requêtes pour sélectionner un ensemble A (s) qui sont affectés à une B et un autre pour sélectionner A (s) qui sont pas attribué à tout B.

Je veux garder la jointure table et je ne veux pas qu'un bean fasse référence à B donc aucune modification de la relation n'est autorisée.

Des idées?

Répondre

0

Vous pouvez utiliser RIGHT JOIN:

SELECT a FROM B b RIGHT JOIN b.aSet a WHERE b IS NULL 

et

SELECT a FROM B b RIGHT JOIN b.aSet a WHERE b IS NOT NULL 
Questions connexes