[英]Hibernate criteria restriction on multiple criterias
我正在編寫一個標准查詢。 我的查詢針對與表屬性和用戶相對應的多個條件。 無論用戶是誰,如果 prop 為 12 或 13,它都會返回結果,或者如果 prop 為 NULL,則用戶必須是 loginInUser。 Sql 查詢的 where 條件如下,返回 4 行
where (property.PROP in (12,13) or (property.PROP is null
and user.loggedInUser = 'XYZ'))
我的標准
Criteria userQuery = session.createCriteria(User.class);
Criteria propertyQuery = userQuery .createCriteria("property");
Criterion crt = (Criterion) userQuery.add(Restrictions.eq("loggedInUser", userId));
propertyQuery.add(
Restrictions.or(
Restrictions.in("prop",propList),
Restrictions.and(Restrictions.isNull("prop"),crt)
)
);
我的問題是 Restrictions.and(criterion,criterion) 將兩個標准作為參數。 但是,當類型轉換(Criterion)時,userQuery 上的第二個條件“crt”無效。 休眠會報錯。 如何在 Criteria 中實現此功能。 或如何編寫標准Restrictions.and(Restrictions.isNull("prop") , userQuery.add(Restrictions.eq("loggedInUser", userId)))
使用使用休眠條件的連接作為以下示例代碼:
List cats = session.createCriteria(Cat.class)
.createAlias("kittens", "kit")
.add( Restrictions.like("kit.name", "Iz%") )
.list();
注意:上面的代碼只是如何在休眠條件中使用 Join 的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.