Как использовать «:» в собственном запросе JPA? - PullRequest
0 голосов
/ 04 июня 2018

Я выполняю некоторый анализ данных, и у меня есть SQL-запрос, который использует SELECT ..., @rownum:=@rownum+1 as row_number, ..., чтобы получить номер строки вместе с результатами.Однако, когда я помещаю это в собственный запрос в своем методе JPA (используя Spring Boot / Spring Data JPA), я получаю следующее исключение:

Caused by: java.lang.IllegalArgumentException: org.hibernate.QueryException: Space is not allowed after parameter prefix ':' 

Я добавил @Query(nativeQuery = true, в свой метод и имеюизменил мои параметры с таких вещей, как where first_name = :firstname на where first_name = ?1 и удалил аннотацию @Param из параметров моего метода, но это не помогло.

Есть ли способ избежать двоеточия в этом запросе,или какой-то другой способ присвоения переменной rownum, которая не использует двоеточие?

1 Ответ

0 голосов
/ 04 июня 2018

Чтобы решить эту проблему, вам нужно выбрать две точки с двойной обратной косой чертой \\:

"SELECT ..., @rownum\\:=@rownum+1 as row_number, ... "
                    ^^^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...