пытаюсь использовать следующий код, чтобы получить автоматически сгенерированный идентификатор. Мой конец - это MySQL. Код выглядит так:Вставить возвращаемый запрос для MySQL в JOOQ
Record record = create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME,
CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetchOne();
System.out.println(record.getValue(CANDIDATE.ID));
Я получаю исключение NullPointerException. Я взглянул на http://www.jooq.org/javadoc/latest/org/jooq/InsertReturningStep.html. Это говорит
Derby, H2, Ingres, MySQL, SQL Server позволяет только для получения IDENTITY значения столбца как "сгенерированный ключ". Если запрашиваются другие поля, выдается второе заявление. Клиентский код должен обеспечивать целостность транзакций между двумя операторами.
Согласно моему пониманию в Mysql auto_increment работает как IDENTITY. Может кто-нибудь, пожалуйста, пролить некоторый свет на то, как достичь этого для MySQL
я взял посмотреть на эту SO Question on a similar topic и попытался следующие
Result<?> record =
create.insertInto(CANDIDATE, CANDIDATE.FIRST_NAME, CANDIDATE.LAST_NAME,CANDIDATE.EXTRACTED_NAME)
.values("Charlotte", "Roche","Charlotte Roche")
.returning(CANDIDATE.ID)
.fetch();
System.out.println(record.size());
Хотя вставляет запись в интерфейсе, но он печатает record.size() как ноль
Не могли бы вы опубликовать 'NullPointerException', который вы получали? Не могли бы вы также разместить DDL своей таблицы «CANDIDATE»? –
Для записи эта проблема также сообщается как [# 4400] (https://github.com/jOOQ/jOOQ/issues/4400) –