Ошибка при использовании нумерации страниц с аннотацией запроса Spring Data JPA - PullRequest
0 голосов
/ 01 ноября 2018
@Repository
public interface PriceListDurationRepository extends CrudRepository<PriceListDuration, String> {

    String mQuery = "SELECT qplt, qplab"    
                     + " ,(SELECT iuomt1.unitOfMeasure FROM UnitsOfMeasureTransTbl iuomt1) "
                 + " FROM PriceListDuration qplab, PriceListDetail qplt " 
                 + " WHERE qplab.priceListId           =qplt.priceListId ";

    @Query(value = mQuery + " AND esib.itemNumber = :itemnumber")
    Page<PriceListDuration> getByItemNumber(String itemnumber, Pageable pageable);
}

Я использую нумерацию страниц в методе getByItemNumber. Но он возвращает ошибку из-за подзапроса на уровне столбца.

Если я уберу

Page<PriceListDuration> getByItemNumber(String itemnumber, Pageable pageable)

с List<PriceListDuration> getByItemNumber(String itemnumber); тогда это работает. Кажется, нумерация страниц не поддерживает подзапрос. Есть ли альтернативный способ использовать нумерацию страниц в этом методе? Любая помощь будет оценена

1 Ответ

0 голосов
/ 02 ноября 2018

Вам может понадобиться countQuery, попробуйте:

@Query(value =  mQuery + " AND esib.itemNumber = :itemnumber",
    countQuery = "SELECT count(*) FROM (" + mQuery + " AND esib.itemNumber = :itemnumber" + ")",
    nativeQuery = true)

Также вам может понадобиться добавить Order by

Проверьте образец:

 @Query(
  value = "SELECT * FROM Users ORDER BY id", 
  countQuery = "SELECT count(*) FROM Users", 
  nativeQuery = true)
Page<User> findAllUsersWithPagination(Pageable pageable);

Это отсюда: https://www.baeldung.com/spring-data-jpa-query

...