我有一个GrantedRole
类允许跨一个或多个授予特定角色Site
,例如:
public class GrantedRole {
private RoleType role;
private User granter;
private User grantee;
private Collection<Site> grantSites;
@Column(nullable = false)
public UserRoleType getRole() {
return role;
}
@ManyToOne(optional = false, fetch=FetchType.LAZY)
public User getGranter() {
return granter;
}
@ManyToOne(optional = false, fetch=FetchType.LAZY)
public User getGrantee() {
return grantee;
}
@ManyToMany
public Collection<Site> getGrantSites() {
return grantSites;
}
}
我想要提出的是一个查询,它将找到GrantedRole
特定授予者给出的所有Site
' 在他们的grantSites
集合中具有一个或多个指定的 '。所以像:
SELECT g FROM GrantedRole g WHERE g.granter = :granter AND
g.grantSites [contains at least one of] (:sites)
...但我不确定使用什么语法[contains at least one of]
,或者是否可以使用 JPA/HQL。有什么建议么?