使用Vararg方法的休眠条件查询

古弗兰·库希德(Gufran Khurshid)

目的是获得具有特定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));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章