Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Vararg方法进行Hibernate条件查询_Java_Hibernate_Jakarta Ee - Fatal编程技术网

Java 使用Vararg方法进行Hibernate条件查询

Java 使用Vararg方法进行Hibernate条件查询,java,hibernate,jakarta-ee,Java,Hibernate,Jakarta Ee,目标是获得具有特定ID的特定实体。我想创建一个vararg方法,该方法将获取实体ID并根据ID返回实体列表: @Override public List<Entity> getEntities(long... ids) { Session s = sessionFactory.getCurrentSession(); s.beginTransaction(); Criteria criteria = s.createCriteria(Entity.class

目标是获得具有特定ID的特定实体。我想创建一个vararg方法,该方法将获取实体ID并根据ID返回实体列表:

@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;
}
@覆盖
公共列表getEntities(长…ID){
会话s=sessionFactory.getCurrentSession();
s、 beginTransaction();
Criteria=s.createCriteria(Entity.class);
用于(长id:id){
//对于每个id,我想创建一个限制
//但限制是这样的
//标准。添加(限制。或(限制。等式(“id”),限制。等式(“id”),id));
}
s、 getTransaction().commit();
返回null;
}
使用方法如下:

List<Entity> list = getEntities(453,282,781,784);
List-List=getEntities(453282781784);

如何创建这样的条件查询?

变量编号的
或id=?
子句类似于IN子句。这是使用以下方法完成的:

将解决您的问题,它将按照传递给varargs的相同顺序返回您的结果

criteria.add(Restrictions.in("id", ids));
criteria.add(Restrictions.in("id", ids));
criteria.addOrder(Order.asc("id"));