Hibernate JPA查询-在多个方面有限制的一个域
我想执行一个JPA查询,将合作伙伴(1)链接到合作伙伴 (很多)。我想要指定合伙企业编号和指定年份的所有合伙人 查询1-不起作用,返回所有年份的所有合作伙伴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人要求
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;
}