Hibernate (3.5) Criteria クエリを作成しました。
Criteria criteria = db.getSession().createCriteria(Vendor.class);
criteria.add(Restrictions.isEmpty("models"));
Criteria.list で実行すると、Hibernate は次の SQL を生成します (読みやすくするために簡略化しています)。
SELECT this_.*
FROM VENDOR this_
left outer join MODEL models1_
ON this_.id = models1_.VENDOR_ID
WHERE NOT EXISTS (SELECT 1
FROM MODEL
WHERE this_.id = VENDOR_ID)
私がやりたいのは、「存在しない」部分に制限を追加して、SQLクエリが次のようになるようにすることです
SELECT this_.* FROM VENDOR this_
left outer join MODEL models1_
ON this_.id = models1_.VENDOR_ID
WHERE
NOT EXISTS (SELECT 1
FROM MODEL
WHERE this_.id = VENDOR_ID AND DEPRECATED = 0 )
Hibernate Criteria API を使用してそれは可能ですか? はいの場合、その方法は? または、同じ結果を達成する他の可能性はありますか (ただし、まだ Criteria API を使用しています)。