H2 + jpa GenerationType.IDENTITY 오류
상황
- 로컬 개발환경에서 h2 데이터베이스에 data.sql 스크립트로 데이터를 미리 추가하여 사용 → Data가 4개가 들어 있음
-
User
@Id
가 5부터 잡혀야 하는데 1부터 들어가게 되어 Insert 오류 발생org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.USERS(ID) ( /* key:1 */ 1, NULL, NULL, NULL, NULL, U&'\\ccab\\c9f8', '$2a$10$ZoYSw/Y0tRu0JaKvSVuKdOIxMEGfFWUSan77JZHU4zvsD.8/zxSr6', NULL, NULL)"; SQL statement: insert into users (id, created_user, modified_user, reg_dt, update_dt, name, password, role, uuid) values (default, ?, ?, ?, ?, ?, ?, ?, ?) [23505-214]
-
Users.java
public class Users extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") Integer id; }
해결
-
properties - datasource 에 다음과 같이 추가
*
spring.datasource.url*=jdbc:h2:mem:test;MODE=LEGACY
-
data.sql 스크립트에 id를 넣지 않으면 알아서 H2에서 증가시켜가면서 넣고, 이후에 들어가게되는 데이터들에도 문제가 없어짐
마지막 수정일시: 2023-02-14 09:26
댓글남기기