Java JPA不在声明中

Java JPA不在声明中,java,mysql,jpa,eclipselink,Java,Mysql,Jpa,Eclipselink,我有一个使用MySQL、JPA和EclipseLink的应用程序 我试图从数据库中获取标记为活动的用户集合,这些用户集合不在应用程序中已加载的列表中 这就是我的方法: public List<User> findAllButUsers(List<User> users) { List<User> list = null; Query query = em.createQuery("SELECT u FROM User u WHERE u NO

我有一个使用MySQL、JPA和EclipseLink的应用程序

我试图从数据库中获取标记为活动的用户集合,这些用户集合不在应用程序中已加载的列表中

这就是我的方法:

public List<User> findAllButUsers(List<User> users) {

    List<User> list = null;
    Query query = em.createQuery("SELECT u FROM User u WHERE u NOT IN :users AND u.status = :status");
    query.setParameter("status", "ACTIVE");
    query.setParameter("users", users);

    list = query.getResultList();
    return list;
}
从bind=>[com.wa.gp.jpa.entities.User[iduser=2],ACTIVE]向我显示,它不绑定id,而是从User.toString方法传递值,从而生成一个包含传递的用户的集合。我认为只要将对象发送到JPA,它就可以自己找出iduser

我不知道这是否是一种预期的行为,在我看来是。我怎样才能在不必更改valor的情况下直接进行查询呢?我是否必须传递ID列表,而不是给出用户列表?如果是这样的话,我刚才说

谢谢

Fine:   SELECT iduser, create_time, email, name, password, salt, status FROM user WHERE ((iduser NOT IN (?)) AND (status = ?))
bind => [com.wa.gp.jpa.entities.User[ iduser=2 ], ACTIVE]