Je to zvláštní, ale dotaz nezvládá null příliš dobře. Když jsem změnil dotaz na:
Query query = getSession().createQuery("from Car as c where " +
"c.carModel = ? AND c.carMake is null").setParameter(0, carModel);
funguje to dobře, protože DAO potřebuje dotaz make jako NULL. Pokud tedy není null, potřebuji mít dvě sady dotazů, jednu, která je napevno zakódována pro výběr null, jak je uvedeno výše, a druhou pro setParam(1, carMake).
Divné, ale myslím, že to funguje.