Ниже запрос:
SELECT a FROM b WHERE a.z = 1
не имеет order by
положение, поэтому упорядочение по умолчанию будет применяться. Согласно this SO ответ, заказ не прогнозируется. Поэтому я рекомендую добавить предложение order by
.
Если это всего лишь пример, а фактический запрос содержит order by
, то вы можете реализовать подобную логику в одном запросе; вместо того, чтобы обернуть его в другой запрос и получить первую строку, например. что-то вроде (SELECT a FROM b WHERE a.z = 1 order by z)
с rownum
. Ниже приведены шаги, чтобы сделать это с помощью JPA образом:
- Написать репозиторий для этой таблицы (вы можете продлить
PagingAndSortingRepository
, как это уже имеет некоторые методы)
- Написать
findBy()
метод, который принимает Pageble
аргумент (вместе с г), это будет выглядеть следующим образом: public List<T> findByZ(int z, Pageable pageable)
Называйте это с Z
и PageRequest
, например:
final PageRequest page1 = new PageRequest( 0, 1, Direction.ASC, "somefield" );
Применяется limit/rownnum
на основе используемого вами db и дает вам записи.
Вы внедрили его? – devanathan