최대 1 분 소요

상황

  • 로컬 개발환경에서 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;
        
      }
    

해결

  1. properties - datasource 에 다음과 같이 추가

    *spring.datasource.url*=jdbc:h2:mem:test;MODE=LEGACY

  2. data.sql 스크립트에 id를 넣지 않으면 알아서 H2에서 증가시켜가면서 넣고, 이후에 들어가게되는 데이터들에도 문제가 없어짐


마지막 수정일시: 2023-02-14 09:26

카테고리:

업데이트:

댓글남기기