Je suis un peu confus sur la façon de faire quelque chose en HQL.
Disons que j'ai une classe Foo que je fais persister dans Hibernate. Elle contient un ensemble de valeurs d'énumération, comme ceci :
public class Foo
{
@CollectionOfElements
private Set<Bar> barSet = new HashSet<Bar>();
//getters and setters here ...
}
y
public enum Bar
{
A,
B
}
Existe-t-il une instruction HQL que je peux utiliser pour récupérer uniquement les instances de Foo dont le barSet contient Bar.B ?
List foos = session.createQuery("from Foo as foo " +
"where foo.barSet.contains.Bar.B").list();
Ou suis-je obligé de récupérer toutes les instances de Foo et de les filtrer au niveau de la DAO ?
List foos = session.createQuery("from Foo as foo").list();
List results = new ArrayList();
for(Foo f : foos)
{
if(f.barSet.contains(Bar.B))
results.add(f);
}
Merci !