본문 바로가기
웹개발/SpringBoot

스프링부트 .sql 파일 실행오류, 엔티티 id자동생성 오류

by 철없는민물장어 2023. 3. 9.
728x90
반응형

강의를 따라하다, .sql파일에 sql스크립트를 적어 더미데이터를 넣는 과정이 있었는데,

똑같이 따라해도 오류가 발생했다.

Article이라는 테이블에 값을 넣는 코드였는데,

Article이라는 테이블을 찾을 수 없다는 오류가 발생했다.

 

오류는.. article테이블을 찾을 수 없다는 것 외엔 정보가 없어 이리저리 찾아봤는데..

hibernate가 초기화 되기 전 .sql이 실행되어서 그렇다는 답을 찾았다.

 

그리하여 해결을 위해

application.property 파일에 다음과 같은 코드를 작성하였다.

spring.jpa.defer-datasource-initialization= true;

 

스프링부트에서는 기본적으로 애플리케이션을 실행할 때 데이터 소스를 즉시 초기화하는데,

위 코드를 작성하면 애플리케이션 실행시 데이터소스를 초기화하지 않고 JPA가 필요한 시점에 데이터소스를 초기화할 수 있게 되어 오류가 발생하지 않는다.


또한, 엔티티에서 id를 자동생성하기 위해

@GeneratedValue(strategy = GenerationType.IDENTITY)

id필드에 위 어노테이션을 부착했는데,

더미데이터로 넣어놓은 값들과 중복된 id를 생성하는 오류가 있었다.

 

이를 해결하기 위해서

더미데이터 삽입시 id값을 제외하고 넣어주면 된다.

 

insert into article(title,content) values ('gagaa','111content');

이렇게, id를 빼고 넣으면 잘 된다.

728x90
반응형

'웹개발 > SpringBoot' 카테고리의 다른 글

Rest API  (0) 2023.03.11
글 삭제하기(DB 데이터 삭제하기)  (0) 2023.03.09
게시물 수정하기(DB 갱신)  (0) 2023.03.09
리다이렉트 설정하기  (0) 2023.03.08
DB의 모든 데이터 목록 가져오기  (0) 2023.03.08

댓글