次のGrantedRole
ように、特定の役割を 1 つ以上にわたって付与できるクラスがあります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
指定された が 1 つ以上含まれています。次のようなものです: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を使用してこれが可能かどうかはわかりません。助言がありますか?