合并两个分页查询

时间:2020-10-16 08:08:55

标签: spring-boot jpa spring-data-jpa

我需要通过分页获取文件夹的内容。文件夹可以包含文档和子文件夹。因此,我有两个JPQL查询:

SELECT f FROM Folder f WHERE f.parentFolder.id=:id; 
SELECT d from Folder f JOIN f.documentList d WHERE f.id=:id;

如何“合并”此查询,以便可以使用分页?最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以将这两个查询合并为一个查询,如下所示

select f, (SELECT d from Folder f JOIN f.documentList d WHERE f.id=id) FROM Folder f WHERE f.parentFolder.id=id;

这可能是合并这些查询并使用为该实体创建的对象捕获结果的一种简单方法,或者您将需要创建一个类,该类可以保存将通过查询返回的所有记录。 / p>

例如: 如果first select语句返回两个字段,例如firstname和lastname,然后返回 第二个查询返回3个字段,例如年龄,电话,性别。然后,您需要创建一个包含5个字段的类,例如名字,姓氏,年龄,电话和性别。