我创建了自定义存储库和其中的一种方法。我想将可分页对象添加到该查询中,以限制返回的项目。
我创建了额外的方法,该方法将从所有项目中仅提取选定的页面。但问题是,如果我有 50000 个项目,我需要获取所有项目,然后仅从中获取选定的页面,这对性能非常不利。
public List<Team> findTeamsForUser(long userId, long statusId, TeamCriteria criteria, Pageable pageable) {
StringBuilder sb = new StringBuilder("select team from Team team join TeamMember teamMember on teamMember.team.id=team.id where
teamMember.user.id=" + userId + " AND teamMember.status.id=" + statusId);
if(criteria!=null) {
if (criteria.getGameId() != null) {
sb.append(" AND team.game.id IN " + criteria.getGameId().getIn().toString().replace("[", "(").replace("]", ")"));
}
}
sb.append(" ORDER BY team.createdDate DESC");
Query query = entityManager.createQuery(sb.toString());
return query.getResultList();
}
我想以某种方式在该查询中包含可分页参数,这样我只能得到有限的项目。
忽然笑
相关分类