Скажем, есть класс сущностей, подобный этому
@Entity
public class User {
...
public Collection<User> followers;
...
}
Допустим, у пользователя тысячи подписчиков. Я хочу разбить на страницы ... Нужно ли мне заводить руки в JPQL, чтобы разбить результат без какого-либо другого выбора?
int page = 5;
User u = em.find(User.class, id);
for (User u : u.getFollowers(page, 100)) { // get the 5th 100 result
// do some stuff
}
Есть ли подобное решение или шаблон? Возможно ли разбить на страницы поле времени выполнения коллекции, просто открыв поле u.getFollowers(page, 100)
без кода ниже?
Я уже знаю это ...
int page = 5;
List<User> followers = em.createQuery("select u.followers from User u where u.id=?1", User.class)
.setParameter(1, id).setFirstResult(page*100).setMaxResult(100).getResultList();