티스토리 뷰

평소처럼 백엔드 개발을 하려고 프로젝트를 생성하고 SpringDataJpa를 사용하여 데이터를 다루고 있었습니다. 그러던 중 한 엔티티의 id를 자동으로 부여하기 위해 @GeneratedValue 를 사용하였습니다.

 

그런데!!! 갑자기

Could not extract ResultSet 에러

가 발생했습니다...

 

데이터베이스에 맞는 테이블이 없을 때 발생한다고 하는데 분명히 테이블은 정확하게 모두 있었습니다...

 

해결 방법을 찾아보던 중 application.yml 파일에 아래와 같은 설정이 필요하다는 것을 알게되었습니다.

spring:
  ...

  jpa:
    ...
    hibernate:
      ddl-auto: update

 

spring.jpa.hibernate.ddl-auto는 옵션을 통해서 데이터베이스를 초기화하는 설정입니다.

 

  •  none  : 아무것도 실행하지 않습니다. (대부분의 DB에서 기본값)
  •  create-drop  : SessionFactory가 시작될 때 drop 및 생성을 실행하고, SessionFactory가 종료될 때 drop을 실행합니다. (in-memory DB의 경우 기본값)
  •  create  : SessionFactory가 시작될 때 데이터베이스 drop을 실행하고 생성된 DDL을 실행합니다.
  •  update  : 변경된 스키마를 적용합니다.
  •  validate  : 변경된 스키마가 있다면 변경점을 출력하고 애플리케이션을 종료합니다.

 

@GeneratedValue의 경우 ID를 생성하는 시퀀스 테이블이 추가되어야하기 때문에 반드시 spring.jpa.hibernate.ddl-auto 설정을 none이 아닌 다른 것으로 지정해주어야 합니다.

 

참고

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함