Hibernate JPA查询-在多个方面有限制的一个域

Hibernate JPA查询-在多个方面有限制的一个域,hibernate,hql,jpql,Hibernate,Hql,Jpql,我想执行一个JPA查询,将合作伙伴(1)链接到合作伙伴 (很多)。我想要指定合伙企业编号和指定年份的所有合伙人 查询1-不起作用,返回所有年份的所有合作伙伴 query = "SELECT p FROM Partnership p" + " JOIN p.partners prt" + " WHERE prt.id.prtSchemeYear=:sYear" + " AND p.pspHerd=:herd") 查询2-也不起作用-所有合作伙伴都返回,而只有2015人要求

我想执行一个JPA查询,将合作伙伴(1)链接到合作伙伴 (很多)。我想要指定合伙企业编号和指定年份的所有合伙人

查询1-不起作用,返回所有年份的所有合作伙伴

query = "SELECT p FROM Partnership p"
  + " JOIN p.partners prt"
  + " WHERE prt.id.prtSchemeYear=:sYear"
  + " AND p.pspHerd=:herd")     
查询2-也不起作用-所有合作伙伴都返回,而只有2015人要求

query = "select distinct p from Partnership p"
      + " JOIN p.partners prt with (prt.id.prtSchemeYear=:sYear)"
      + " WHERE p.pspHerd=:herd")

{result - Partners for all years returned even though 2015 specified in :sYear, yes, restricted by herd using pk psp_cust_id
ONE-合作关系 私人长密码;{这是PK(ie)@Id) 私人字符串; 私有集伙伴=新哈希集(0)

PK类 PartnerId @可嵌入 公共类PartnerId实现java.io.Serializable{ 私人短prtSchemeYear; 私人字符串处理; 私人长公屋

我尝试过的命名查询 -与指定年份(2015年)的合作伙伴建立伙伴关系

T_PARTNERS的结果SQL不包括仅按年份划分的任何限制psp_客户id(这是一个外键)

如果你能帮忙,谢谢你

@OneToMany(fetch = FetchType.EAGER, mappedBy = "partnership")
public Set<Partner> getPartners() {
    return this.partners;
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "prtSchemeYear", column = @Column(name =
  "PRT_SCHEME_YEAR", nullable = false, precision = 4, scale = 0)),
@AttributeOverride(name = "prtHerd", column = @Column(name = "PRT_HERD",
    nullable = false, length = 8)),
@AttributeOverride(name = "prtOwnId", column = @Column(name = 
    "PRT_OWN_ID", nullable = false, precision = 10, scale = 0)) })
    public PartnerId getId() {
        return this.id;
}