如何处理QueryDSL中的OneToMany关系链?

时间:2014-02-22 21:28:57

标签: spring repository querydsl

到目前为止,我已将this repo作为参考,以便在我的Spring项目中使用QueryDSL构建我的存储库。

这个例子对我来说唯一的“缺点”是它没有概述我如何编写一个使用多个OneToMany关系链的存储库。使用此存储库作为示例/参考,它们具有“客户”存储库,并且对于每个客户,存在许多“地址”。我不确定如何使用Give或采用他们使用的相同模式,但是对于与Customers有OneToMany关系的Class。这意味着,我将如何处理与“客户”具有OneToMany关系的“CustomerGroup”的存储库,而“客户”又与“地址”具有一对多的关系。

我发现了一些模式,但似乎并不优雅/最优,所以我正在寻找有经验或洞察力的人来解决这个问题。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

你的意思是为了根据关系编写WHERE语句吗?

例如,如果您要检索包含来自特定国家/地区的客户的所有客户组,您只需致电

QCustomerGroup.customerGroup.customer.any().addresses.any().country.eq("Germany")

要使其工作需要添加

@OneToMany
private Address addresses;

Customer实体。