2009-12-11 5 views
0

j'ai une entité avec un ensemble comme disentcritères Hibernate restriction sur une propriété pour tous les éléments d'un ensemble

Library---><Set>books 

Maintenant, je veux récupérer les bibliothèques où TOUS les livres ont un genre.

J'ai donc quelque chose comme ceci:

c.createCriteria("library", "library").createCriteria("books", "book"); 
c.add(Restrictions.isNotNull("book.genre")); 

Si j'exécute la requête je reçois les bibliothèques où au moins un livre a un genre mais je voudrais mise en veille prolongée pour vérifier la propriété de genre pour tous les les éléments du livre et retournent les bibliothèques où TOUS les éléments satisfont la restriction non nulle.

Désolé pour mon anglais, j'espère que le problème est clair, toute aide est très appréciée.

Merci.

+0

comment voulez-vous chercher vos données en utilisant SQL? – bertolami

+0

Je devrais joindre 2 tables, une pour le nombre de tous les livres pour toutes les bibliothèques et une pour le nombre de livres avec un genre pour toutes les bibliothèques et obtenir les bibliothèques où la différence entre ces nombres est zéro. – Luca

Répondre

1

peut être quelque chose comme:

FROM Library library 
WHERE not exists (SELECTbook from Book book 
    where book.description=null and book.id in (library.books)) ? 

Juste une idée ...

Questions connexes