到目前为止,我已将this repo作为参考,以便在我的Spring项目中使用QueryDSL构建我的存储库。
这个例子对我来说唯一的“缺点”是它没有概述我如何编写一个使用多个OneToMany关系链的存储库。使用此存储库作为示例/参考,它们具有“客户”存储库,并且对于每个客户,存在许多“地址”。我不确定如何使用Give或采用他们使用的相同模式,但是对于与Customers有OneToMany关系的Class。这意味着,我将如何处理与“客户”具有OneToMany关系的“CustomerGroup”的存储库,而“客户”又与“地址”具有一对多的关系。
我发现了一些模式,但似乎并不优雅/最优,所以我正在寻找有经验或洞察力的人来解决这个问题。
非常感谢任何帮助!
答案 0 :(得分:2)
你的意思是为了根据关系编写WHERE语句吗?
例如,如果您要检索包含来自特定国家/地区的客户的所有客户组,您只需致电
QCustomerGroup.customerGroup.customer.any().addresses.any().country.eq("Germany")
要使其工作需要添加
@OneToMany
private Address addresses;
到Customer
实体。