[jpa error] Table 'DB이름.hibernate_sequence' doesn't exist

호성·2023년 3월 3일
0

1. error 화면

2. 원인

PK설정(@Id)한 Entity에 strategy=GenerationType.AUTO를 설정하였을 경우 발생하는 에러로 확인된다.

3. 해결방법

해결방법으로는 아래 2가지 방법이 있다.

  1. application.properties 파일에 spring.jpa.hibernate.ddl-auto=create 설정 추가하기

    • spring.jpa.hibernate.ddl-auto=create란 서버 시작시 DB Table Drop후 생성으로 서버를 시작할 때마다 데이터가 초기화 되면서stategy=GenerationType.AUTO로 설정되어있을 경우 DB에 hibernate_sequence Table이 자동생성되어 error가 해결된다.
    • stategy=GenerationType.AUTO의 동작원리
      1. hibernate_sequence를 select
      2. hibernate_sequence를 update
      3. insert into ex(id,name) values(?,?)
  2. PK설정한 Entity를 strategy=GenerationType.IDENTITY로 수정하기

    • strategy=GenerationType.IDENTITY의 동작원리
      1. DB내부의 AUTO_INCREMENT를 동작

0개의 댓글