Spring Data JPA save() with application-assigned vs generated ids. Spring Boot parent 4.1.1, Hibernate 7.4.14.Final, H2 == AssignedBook: UUID.randomUUID() assigned in the constructor, no @Version sql> select ab1_0.id,ab1_0.title from assigned_book ab1_0 where ab1_0.id=? sql> insert into assigned_book (title,id) values (?,?) == VersionedBook: same, plus a boxed @Version column sql> insert into versioned_book (title,version,id) values (?,?,?) == PersistableBook: same, entity implements Persistable.isNew() sql> insert into persistable_book (title,id) values (?,?) == GeneratedBook: @UuidGenerator(style = VERSION_7), id is null until persist sql> insert into generated_book (title,id) values (?,?) == saveAll of 100 new AssignedBook rows: selects issued select statements : 100, insert statements : 100 == saveAll of 100 new GeneratedBook rows: selects issued select statements : 0, insert statements : 100