检索具有分页的休眠关联实体



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

  • 员工可以拥有一个或多个学位。
  • 员工过去可能有一个或多个部门
  • 员工可能有一个或多个工作

我正在尝试使用命名查询获取结果,以便从学位表和部门表中获取所有结果,但从作业表中获取仅 5 个结果。因为我想在作业表上应用分页。

但是,所有这些实体都作为一个集合在用户表中。其次,由于相同文件的其他用法以及一些体系结构限制,我不想更改映射文件。

否则,在映射

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

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

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

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

Hibernate无法在单个查询中获取多个列表,即使对于Sets,您也不想运行笛卡尔乘积。因此,请使用查询而不是单个 JPQL 查询。

最新更新