У меня есть таблица со столбцом автоинкремента, как описано здесь
Вот как это определено в Java / Hibernate:
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int ID;
И вот какстолбец определен в CREATE TABLE (примечание, без последовательности):
"ID" INTEGER CS_INT GENERATED BY DEFAULT AS IDENTITY
Теперь я хочу вставить строку в таблицу и получить полученный идентификатор.Проблема в том, что драйвер не поддерживает Statement.RETURN_GENERATED_KEYS
для получения идентификатора с помощью оператора fetch.
С другой стороны, поскольку у меня нет созданной последовательности, я не могу использовать nextval
.Любые идеи, как получить автоинкрементный идентификатор?
Примечание: JDBC имеет аналогичную проблему, это не характерно для Hibernate.
UPDATE
Пример кода (в Java / Hibernate):
val c = new MyJpaClass
c.code = 1
c.name = "abc"
c.version = 0
entityManger.getTransaction.begin
entityManger.persist(c)
entityManger.getTransaction.commit
// c.id should be populated here with the assigned autoincremented id