Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多对多查询jpql_Java_Jpa_Jpa 2.0_Jpql - Fatal编程技术网

Java 多对多查询jpql

Java 多对多查询jpql,java,jpa,jpa-2.0,jpql,Java,Jpa,Jpa 2.0,Jpql,我有以下的麻烦 有一家实体分销商与实体镇的众多关系有关: @Entity public class Distributor{ @ManyToMany @JoinTable( name = "GS_DISTRIBUTOR_TOWN", joinColumns = @JoinColumn(name = "CD_DISTRIBUTOR"), inverseJoinColumns = @JoinColumn(name = "CD_TOWN") )

我有以下的麻烦

有一家实体分销商与实体镇的众多关系有关:

@Entity
public class Distributor{

   @ManyToMany
   @JoinTable( name = "GS_DISTRIBUTOR_TOWN",
           joinColumns = @JoinColumn(name = "CD_DISTRIBUTOR"),
           inverseJoinColumns = @JoinColumn(name = "CD_TOWN") )
   private List<Town> towns;

   ....
}
@实体
公共类分发服务器{
@许多
@JoinTable(name=“GS\U DISTRIBUTOR\U TOWN”,
joinColumns=@JoinColumn(name=“CD\U发行商”),
inverseJoinColumns=@JoinColumn(name=“CD_TOWN”))
私人名单城镇;
....
}
那么实体城镇也与地区有关

@Entity
public class Town{

   @ManyToMany(mappedBy="towns")
   private List<Distributor> distributors;

   @ManyToOne
   private District district;

   ....
}
@实体
公营城镇{
@许多(mappedBy=“城镇”)
私人名单分销商;
@许多酮
私家区;
....
}
现在,我必须过滤(使用jpql)某个地区的所有分销商。 我该怎么办

select distinct distributor 
from Distributor distributor  
join distributor.towns town 
join town.district district 
where district.name = :name

请参阅:

首先,从实体城镇看,@Manytoone的关系映射不正确。 应该是:

@Entity
public class District {

  .....

   @ManyToOne
   private Town town;

   ....
}

这应该是一个评论,因为它没有回答所问的问题。