Spring boot Pageable - динамический nativeQuery.Фильтр сортировки не работает.(свойство не преобразовано в имя столбца) - PullRequest
0 голосов
/ 27 сентября 2018
public interface UserRepository extends JpaRepository<User, Long> {

  @Query(value = "SELECT id AS USER_ID, name AS NAME FROM USERS ORDER BY ?#{#pageable} ",
    countQuery = "SELECT count(id) FROM USERS ORDER BY ?#{#pageable}",
    nativeQuery = true)
  Page<User> findAll(Pageable pageable);
}

/users --> give me 20 records
/users?sort=name,desc --> give me 20 records sorted by name
/users?sort=userId,desc --> throws the error USERID not valid identifier

Я не знаю, почему userId не конвертируется в USER_ID в nativeQuery

1 Ответ

0 голосов
/ 01 октября 2018

вы определили в своем @Query nativeQuery = true.Так что в этом случае свойство не преобразуется в имя столбца.То же самое относится и к сущности, вы должны назвать имя таблицы точно так же, как в запросе USERS, а не сущности User (как вы определили собственный запрос).

попробуйте использовать / users? sort = USER_ID, desc или /users? sort = user_Id, desc

либо будут работать.

...