簡體   English   中英

使用Vararg方法的休眠條件查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM