使用分页检索 Hibernate 关联实体

Retrieve Hibernate associated entity with pagination

我遇到了一个问题。我有 3 个 table 与一对多关系中的 table 相关联。

我正在尝试使用命名查询来获取结果,我从 Degree table 和 Department table 获取所有结果,但从 Jobs table 只获取 5 个结果。因为我想在 Jobs table.

上应用分页

但是,所有这些实体都在用户 table 中作为一个集合。其次,我不想因为相同文件的其他用途和一些体系结构限制而更改映射文件。

否则在映射的情况下,我可以在映射文件中使用 BatchSize 注释,但我不愿意这样做。

最好的方法是编写三个查询:

  1. userRepository.getDegrees(userId);
  2. userRepository.getDepartments(userId);
  3. userRepository.getJobs(userId, pageIndex);

Spring Data 对于分页以及简化数据访问代码非常有用。

Hibernate cannot fetch multiple Lists 在单个查询中,即使对于集合,您也不希望 运行 笛卡尔积。所以使用查询而不是单个 JPQL 查询。