Я использую данные 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)