[英]Hibernate Criteria Query with Vararg Method
目的是獲得具有特定ID的某些實體。 我想創建一個將使用實體ID並根據ID返回實體列表的vararg方法:
@Override
public List<Entity> getEntities(long... ids) {
Session s = sessionFactory.getCurrentSession();
s.beginTransaction();
Criteria criteria = s.createCriteria(Entity.class);
for (long id : ids) {
// for very id I want to create a Restriction
// but Restriction goes like
// criteria.add(Restrictions.or(Restrictions.eq("id", id),Restrictions.eq("id", id)));
}
s.getTransaction().commit();
return null;
}
用法將是:
List<Entity> list = getEntities(453,282,781,784);
如何創建這樣的條件查詢?
可變數量的OR id = ?
子句就像一個IN子句。 這是使用Restrictions.in
方法完成的:
criteria.add(Restrictions.in("id", ids));
criteria.add(Restrictions.in("id", ids));
criteria.addOrder(Order.asc("id"));
將解決您的問題,它將以傳遞給varargs的相同順序返回結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.