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 |
댓글