Получить следующее значение из последовательности базы данных - PullRequest
1 голос
/ 06 мая 2019

У меня есть последовательность в базе данных. Мне нужно получить увеличенное значение. Я написал запрос, который поддерживает только sql.

@Query(value = "SELECT nextval('sequence')", nativeQuery = true)

Запрос работает нормально. Но мне нужно написать запрос, чтобы получить порядковый номер в JPQL (который поддерживает базы данных SQL и oracle)

1 Ответ

1 голос
/ 06 мая 2019

Если вам требуется только поддержка Oracle SQL, вы можете написать:

SELECT sequence.nextval FROM dual

Если вам нужно поддерживать несколько RDBMS, вам нужно будет использовать программно настроенный собственный запрос или использовать что-то вроде jOOQ (отказ от ответственности, я работаю на поставщика), или есть один метод на диалект с аннотацией @Query на каждом, например:

@Query(value = "SELECT nextval('sequence')", nativeQuery = true)
int getPostgreSQLSequenceNextValue();

@Query(value = "SELECT sequence.nextval FROM dual", nativeQuery = true)
int getOracleSequenceNextValue();

Это немного больноконечно, но так работают аннотации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...