由@ManyToOne进行的HQL查询过滤

时间:2014-06-27 13:21:28

标签: java hibernate hql many-to-one

我有与角色有关系的UserClass:

@Entity 
@Table(name="USERS")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorValue("ROLE_ADMIN")
@DiscriminatorColumn (name="ROLENAME", discriminatorType= DiscriminatorType.STRING, length=20)
@DiscriminatorOptions(force = true) 
public class User extends BaseEntity implements UserDetails {

    @ManyToOne
    @JoinColumn(name = "role_id", referencedColumnName="id") 
    @NotNull(message = "Il campo RUOLO è obbligatorio")
    private Role role;

    //others fields


    //getter & setter

}

在UserDAO中,我有插入/编辑/删除...功能以及给我所有用户列表的功能:

@Override
@SuppressWarnings("unchecked")
public List<User> getUsers() {
    return getCurrentSession().createQuery("from User").list();
}

现在我的问题:我想构建另一个函数,它给了我所有具有我传递给函数的角色之一的用户:

public List<User> getUsers(List<Role> roles)

我该怎么做?我是否必须传递一个ID列表,或者它通过了一个角色列表?

在这两种情况下,我如何编写WHERE条件?

由于

0 个答案:

没有答案