我有两个表/实体:
@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一起使用其他许多动态创建的谓词,但是现在我正在寻找任何想法。