【发布时间】:2016-03-08 15:34:23
【问题描述】:
我在使用 JPQL 编写查询时遇到问题。我有两个具有多对多关系的实体:
Entity1(用户)
@Entity
public class User implements Serializable {
@Id
private long id;
private String name;
@ManyToMany()
@JoinTable(name="users_roles",
joinColumns=@JoinColumn(name="user_id"),
inverseJoinColumns=@JoinColumn(name="role_id"))
private Set<Role> roles;
}
Entity2(角色)
@Entity
public class Role implements Serializable {
@Id
private long id;
private String name;
}
想象一下,我有一个大小不同的角色列表(例如“roleA”、“roleB”、“roleC”……),并且我希望获得在此列表中具有每个角色的每个用户。在我的脑海中,它会是这样的:
select u from users u where :roles member of u.roles
据我所知,这不起作用,因为 :roles 在“成员”的左侧使用时不能成为集合。有没有办法在一个 JPQL 查询中实现这一点?如果在单个查询中不可能,那么最好的方法是什么?
谢谢
【问题讨论】:
标签: jpql