Я пытаюсь параметризовать метод @Query для MariaDb 10.3, используя последовательность с именем F0001
Вкл. этот урок , в разделе 5.2 есть этот пример
5,2. Родные
Индексированные параметры для собственных запросов работают точно так же, как и для JPQL:
@Query(
value = "SELECT * FROM Users u WHERE u.status = ?1",
nativeQuery = true)
User findUserByStatusNative(Integer status);
Но когда я пытаюсь сделать то же самое (используя последовательность)
@Query(value = "SELECT NEXTVAL(?1)", nativeQuery = true)
Long getNextSequenceByFleetId(String fleetId);
Это не работает для меня, хотя последовательность правильно установлена в БД.
SELECT NEXTVAL(F0001) --> returns nextval 2
Что мне здесь не хватает?
Спасибо.
PS: я видел этот пост , но примеры не используют аннотацию @Query
.
ОБНОВЛЕНИЕ:
Следуя предложениям @JB Nizet в комментариях, я попытался использовать SpEL:
https://spring.io/blog/2014/07/15/spel-support-in-spring-data-jpa-query-definitions
@Query("select u from User u where u.age = ?#{[0]}")
List<User> findUsersByAge(int age);
Я пробовал следующее:
@Query(value = "SELECT NEXTVAL(?#{[0]})", nativeQuery = true)
Long getNextSequenceByFleetId(String fleetId);
но увы ...
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''F0001')' at line 1