Как получить значение последовательности БД при использовании данных 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.

Другие вопросы по тегам