现在我正在尝试实现过滤器之类的功能。有两个模型用户和角色。我使用单向多对多关系。下面是我的代码。
public class User {
...
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinTable(name = "user_role", joinColumns = {@JoinColumn(name="user_id") },
inverseJoinColumns = { @JoinColumn(name = "role_id") })
private Set<Role> roles = new HashSet<Role>();
...
}
public class Role {
private String role;
...
}
现在,我想获取具有许多角色的用户,但在用户被挑选出来的角色集合中只是其中一个用户角色。我想使用 HQL 进行查询,但我不知道怎么做,所以我写了一个 sql “select * from user as u left join user_role as ur on u.id = ur.user_id where ur.role_id in (1,2)” . 但结果无法转换为用户列表。而且我仍然需要使用HQL,所以任何人都可以提供一些帮助。谢谢。