Как получить список с использованием JPA, когда первая сущность является следующей сущностью после сущности с указанным первичным ключом - PullRequest
0 голосов
/ 02 марта 2019

Для формы getList offset с limit я могу использовать:

@Override
        public List<Collection> getList(int offset, int limit) {
            String SELECT_COLLECTIONS = "select collection from " + Collection.class.getName() + " collection";

            TypedQuery<Collection> query = entityManager.createQuery(SELECT_COLLECTIONS, Collection.class);
            return query.setFirstResult(offset).setMaxResults(limit).getResultList();
        }

Теперь вместо смещения у меня есть первичный ключ некоторой сущности.

Как получить getList после элемента, который является следующим элементом после элемента с @ID?

Пример: у entites в моей базе данных есть ключи - a, b, c, d, e, f .

Мне нужно выполнить getList (b, 3) .Результирующий список объектов будет иметь ключи - c, d, e .

1 Ответ

0 голосов
/ 02 марта 2019

Это не сработает.Для текущих данных вы можете select сущности вместе с rank(), найти значение rank() для указанного идентификатора и затем использовать его для запроса следующих данных (эта функция зависит от поставщика, доступна, например, в postgres, sql server),Но вы не используете order by, поэтому порядок следования результатов не определен.После того, как вы сохраните некоторые данные в своей базе данных, порядок может измениться, и результат не будет прежним.

Если есть возможность, вы можете использовать id, тогда вы можете написать что-то вроде этого:

"select collection from " + Collection.class.getName() + " collection where collection.id > :id order by collection.id";

И передать параметр id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...