H2 database: NULL not allowed for column "ID" when inserting record using jdbcTemplate
Try to use strategy=GenerationType.IDENTITY
instead of the strategy=GenerationType.AUTO
Also could be wrong hibernate.dialect Try the
hibernate.dialect=org.hibernate.dialect.H2Dialect
Hibernate 5.2.x (Spring Boot 2.x) change default strategy for sequences, if DB supported one. So, with strategy=GenerationType.AUTO
, hibernate_sequence
is created, but id
is not autoincremented, based on this sequence, as must be:
create table users (id integer not null, ...)
instead of
create table table_name(id int default hibernate_sequence.nextval primary key, ...);
(see HHH-13268). There are several solutions:
- change
@GeneratedValue
tostrategy = GenerationType.IDENTITY
- set
spring.jpa.properties.hibernate.id.new_generator_mappings=false
(spring-boot aliasspring.jpa.hibernate.use-new-id-generator-mappings
) - insert with nextval:
INSERT INTO TABLE(ID, ...) VALUES (hibernate_sequence.nextval, ...)