У меня есть база данных MariaDB, и я пытаюсь вставить строку в таблицу users
. Он имеет сгенерированный id
, и я хочу получить его после вставки. Я видел this, но это не работает для меня:INSERT..RETURNING не работает в JOOQ
public Integer addNewUser(String name) {
Record record = context.insertInto(table("users"), field("name"))
.values(name)
.returning(field("id"))
.fetchOne();
return record.into(Integer.class);
}
Новая строка вставляется, но record
всегда null
. Я не использую генерацию кода JOOQ.
Спасибо за ответ. Итак, мне нужно будет запросить максимальное значение и добавить 1, правильно? Есть ли другой способ, чтобы воспользоваться автоинкрементами? –
@bigdestroyer: Я бы не стал запрашивать максимальное значение, поскольку это может привести к условиям гонки. Я снова буду искать пользователя по имени, поскольку он, вероятно, уникален. Или вы используете генератор кода jOOQ, в случае которого этот запрос правильно вернет идентификатор. –
Хорошая идея. Благодаря! –