Как получить значение последовательности БД при использовании микронавт-данных с JDBC - PullRequest
2 голосов
/ 06 октября 2019

Я использую данные micronaut с JDBC в моем приложении (без спящего режима). Мне нужно сгенерировать значение моего первичного ключа с использованием последовательностей Oracle DB

Согласно их официальному документу (https://micronaut)-projects.github.io/micronaut-data/1.0.x/guide/#jdbc) Раздел: 9.1.4.1 Аннотации SQL

Поддерживаются только некоторые аннотации JPA иЯ не нашел в списке @GeneratedValue и @SequenceGenerator (поэтому не уверен, что они поддерживаются или нет)

Кроме того, в документе говорится:

Раздел 9.1.4.2 Генерация идентификатора Если вы хотите использовать последовательности для идентификатора, вы должны вызвать SQL, который генерирует значение последовательности, и назначить его до вызова save ().

Итак, что будет лучшим способомзапросить базу данных Oracle, чтобы получить значение последовательности? (поскольку у меня нет никакого менеджера сеанса / сущности здесь, в отличие от JPA).

Уже пробовал генерировать последовательность с использованием аннотаций JPA:

@ GeneratedValueи @ SequenceGenerator

Также мыing,

@ GenerateValue присутствует в библиотеке данных микронавтов (io.micronaut.data.annotation.GeneratedValue)

Пример кода:

@ Id
@GeneratedValue (стратегии = GenerationType.SEQUENCE, generator = "ID_SEQ") @SequenceGenerator (sequenceName = "EMPLOYEE_ID_SEQ", allocSize = 1, name = "ID_SEQ")
частный длинный employeeId;

Вышеприведенный код не выполнен с:

Причина: java.lang.NullPointerException : пусто в oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers (OraclePreparedStatement.java:3194)

1 Ответ

0 голосов
/ 15 октября 2019

Генераторы последовательностей еще не поддерживаются, но находятся в списке TODO

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