Java 通过@ManyToOne进行HQL查询筛选
我有一个与角色有关系的UserClass:Java 通过@ManyToOne进行HQL查询筛选,java,hibernate,hql,many-to-one,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) @DiscriminatorO
@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中,我有insert/edit/delete。。。函数,也是一个为我提供所有用户列表的函数:
@Override
@SuppressWarnings("unchecked")
public List<User> getUsers() {
return getCurrentSession().createQuery("from User").list();
}
@覆盖
@抑制警告(“未选中”)
公共列表getUsers(){
返回getCurrentSession().createQuery(“来自用户”).list();
}
现在,我的问题是:我想构建另一个函数,它为我提供所有具有我传递给该函数的角色之一的用户:
public List<User> getUsers(List<Role> roles)
public List getUsers(列表角色)
我该怎么做?我必须传递ID列表,还是传递角色列表比较好
在这两种情况下,如何编写WHERE条件
谢谢谢谢,我传递了一个角色id列表,并用IN关键字创建了查询