Как получить значение последовательности БД при использовании данных micronaut с JDBC

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

Также используя,

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

Пример кода:

@Id
@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "ID_SEQ") @SequenceGenerator (sequenceName = "EMPLOYEE_ID_SEQ", allocationSize = 1, name = "ID_SEQ")
private Long employeeId; < / em>

Приведенный выше код завершился ошибкой:

Вызвано: java.lang.NullPointerException: null в oracle.jdbc.driver.OraclePreparedStatement.setupDbaBindBuffers (OraclePreparedStatement.java:3194)


person Mohit Gupta    schedule 06.10.2019    source источник


Ответы (1)


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

person Graeme Rocher    schedule 15.10.2019
comment
Итак, какой подход вы должны предложить на время? Один из найденных нами способов - создать абстрактный класс репозитория и с помощью JdbcOperations запустить последовательность DB sql для получения следующей последовательности и установить значение для моей сущности перед вызовом save API. - person Mohit Gupta; 15.10.2019