我正在使用Sping Boot JPA规范根据过滤条件过滤记录。我有一个Parent和2个子表。这两个子表有另一个公共parent2。我需要检索Parent记录沿着与公共parent2 id匹配的子记录。
select * from parent join child1 on ... join child2 on ... where child1.another_parent_id = ... or child2.another_parent_id = ...
这里的问题是,它检索父记录,如果我执行parent.getChild1或parent.getChild2,它将返回child1和child2的所有记录,而不仅仅是another_parent_id的匹配记录。
有没有可能用spring Boot jpa规范来实现这一点?
一种方法是为child1和child2创建单独的存储库,然后过滤结果,然后合并获取结果。在这里,我需要命中2个查询,如果child1和child2的结果都返回相同的父项,那么我需要过滤唯一的记录。
先谢了。
1条答案
按热度按时间g2ieeal71#
沿着父记录,您还可以捕获查询返回的子记录。您可以将查询结果Map到DTO。
1.定义DTO:
字符串
1.查询并将结果Map到dto。
型
此dto列表将仅包含查询返回的子项。