Использование executeInsert()
похоже не возвращает идентификатор:
// Insert it (explicitly)
create.executeInsert(book);
Однако использование Record.store
делает:
book.store()
Вот как перейти от POJO к записичтобы PJO можно было сохранить, а затем получить обновленный POJO со сгенерированным идентификатором:
// A "mutable" POJO class
public class MyBook {
public int id;
public String title;
}
// Create a new POJO instance
MyBook myBook = new MyBook();
// myBook.id = 10; <-- Id is NOT set here because the database auto-generates it
myBook.title = "Animal Farm";
// Load a jOOQ-generated BookRecord from your POJO
BookRecord book = create.newRecord(BOOK, myBook);
// Insert it (implicitly) using the BookRecord instead of create.executeInsert()
book.store(); // <--- THIS IS THE KEY DIFFERENCE
// Get new Book POJO from the BookRecord
MyBook newBook = book.into(MyBook.class);
// This is also a handy function to get the Record as Map,
// which is easier to view in the debugger
Map<String, Object> bookMap = book.intoMap();