Search code examples
javahibernatehibernate-criteria

How to use createAlias for a null Set Attribute with Hibernate Criteria Api?


I have an entity Car that has a nullable set of vignettes , and i want to get the Car list that haven't a vignette.

i tried with this but i don't find my way ...

Criteria criteria = getSession().createCriteria(Car.class);
criteria.createAlias("vignettes", "V");
criteria.add(Restrictions.or(Restrictions.lt("V.vignetteDateFin", dateDebut),Restrictions.eq("V.vignetteDateFin", null))) 

can you suggest any idea ?


Solution

  • Criteria criteria = getSession().createCriteria(Car.class);
    criteria.createAlias("vignettes", "V");
    criteria.add(Restrictions.or(
        Restrictions.lt("V.vignetteDateFin", dateDebut),
        Restrictions.isNull("V"))
    );
    

    If this does not do what you want you may need a subquery. See this related question: Hibernate Criteria: adding additional restriction to Restrictions.isEmpty