次のトラブルがあります。
エンティティタウンへのManyToMany関係に接続しているエンティティディストリビューターがあります。
@Entity
public class Distributor{
@ManyToMany
@JoinTable( name = "GS_DISTRIBUTOR_TOWN",
joinColumns = @JoinColumn(name = "CD_DISTRIBUTOR"),
inverseJoinColumns = @JoinColumn(name = "CD_TOWN") )
private List<Town> towns;
....
}
次に、エンティティの町も地区と関係があります
@Entity
public class Town{
@ManyToMany(mappedBy="towns")
private List<Distributor> distributors;
@ManyToOne
private District district;
....
}
今、私は地区にいるすべてのディストリビューターを(jpqlで)フィルタリングする必要があります。どのようにできるのか?
select distinct distributor
from Distributor distributor
join distributor.towns town
join town.district district
where district.name = :name