多对多查询 jpql
Posted
技术标签:
【中文标题】多对多查询 jpql【英文标题】:Many-to-Many query jpql 【发布时间】:2013-09-06 16:52:06 【问题描述】:我有以下问题。
有一个实体Distributor与实体城镇的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;
....
那么实体镇也和District有关系
@Entity
public class Town
@ManyToMany(mappedBy="towns")
private List<Distributor> distributors;
@ManyToOne
private District district;
....
现在我必须过滤(使用 jpql)在一个地区的所有经销商。 我该怎么办?
【问题讨论】:
【参考方案1】:select distinct distributor
from Distributor distributor
join distributor.towns town
join town.district district
where district.name = :name
见:https://en.wikibooks.org/wiki/Java_Persistence/JPQL
【讨论】:
【参考方案2】:首先,从实体 Town 来看,@Manytoone 的关系映射不正确。 应该是:
@Entity
public class District
.....
@ManyToOne
private Town town;
....
【讨论】:
这应该是一条评论,因为它没有回答所提出的问题。以上是关于多对多查询 jpql的主要内容,如果未能解决你的问题,请参考以下文章