Как получить значение последовательности БД при использовании данных micronaut с JDBC
Я использую данные micronaut с JDBC в своем приложении (без спящего режима). Мне нужно сгенерировать значение первичного ключа, используя последовательности Oracle DB.
Согласно их официальному документу (https://micronaut-projects.github.io/micronaut-data/1.0.x/guide/) Раздел:9.1.4.1 Аннотации SQL
Поддерживаются только некоторые из аннотаций JPA, и я не нашел @GeneratedValue и @SequenceGenerator в списке (поэтому не уверен, поддерживаются они или нет)
Кроме того, документ говорит:
Раздел 9.1.4.2 Создание идентификатора Если вы хотите использовать последовательности для идентификатора, вам следует вызвать SQL, который генерирует значение последовательности, и присвоить его до вызова save().
Итак, как лучше всего запросить базу данных Oracle для получения значения последовательности?(Поскольку в отличие от JPA у меня здесь нет диспетчера сеансов / сущностей).
Уже пробовал сгенерировать последовательность с использованием аннотаций JPA:
@GeneratedValue и @SequenceGenerator
Также используя,
@GenerateValue присутствует в библиотеке данных micronaut(io.micronaut.data.annotation.GeneratedValue)
Образец кода:
@Id
@GeneratedValue(стратегия = GenerationType.SEQUENCE, generator = "ID_SEQ")@SequenceGenerator(sequenceName = "EMPLOYEE_ID_SEQ", allocationSize = 1, name = "ID_SEQ")
private Long employeeId;
Код выше не удался:
Вызвано: java.lang.NullPointerException: null в oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers(OraclePreparedStatement.java:3194)
1 ответ
Генераторы последовательностей пока не поддерживаются, но находятся в списке TODO.