Hibernate加入/搜索喜欢

时间:2019-03-05 22:50:06

标签: java hibernate jpa querydsl

我有两个表/实体:

@Entity
@Table(name = "REFERRAL")
public class Referral implements Constants{
   ....

   @Column(name = "REFSRC_ZIP")
   private String REFSRC_ZIP;

   ....
}

@Table(name = "TerritoryZip")
public class Territory {

    @Id
    @Column(name = "zipCode")
    private String zipCode;

    @Column(name = "Territory")
    private String territory;
}

它们并没有真正的关联,TerritoryZip用作字典来按地区查找邮政编码列表。 Referral.REFSRC_ZIP包含邮政编码的逗号分隔列表。因此,当提供地区时,我需要使用该地区的邮政编码列表(可能大于2000),并找到REFSRC_ZIP包含该列表中任何邮政编码的所有引荐。

在SQL中,我可以这样做:

SELECT * FROM REFERRAL JOIN TerritoryZip t ON b.REFSRC_ZIP like '%'+t.zipCode+'%'

但是在休眠状态下,我尝试了很多事情-没有一个对我有用。 JoinFormula几乎可以正常工作(在Referral中使用Territory字段),但是即使没有连接Territory表(未提供领土),它也始终创建带有公式表达式的字段

P.S。上面的示例得到了简化,该项目将PaginatedRepository与QueryDSL一起使用其他许多动态创建的谓词,但是现在我正在寻找任何想法。

0 个答案:

没有答案