Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- React Native
- javascript
- react
- 티스토리꾸미기
- Chart.js
- 반복줄이기
- JS console
- 개발콘텐츠
- 공통컴포넌트
- CSS
- 2022
- 제네릭
- utilty type
- reactjs
- 커스텀
- 레이아웃쪼개기
- 누구나 자료구조와 알고리즘
- 폰트적용하기
- TSDoc
- 리액트
- click and drag
- 타입좁히기
- React.js
- typescript
- const 단언문
- NonNullable
- returnType
- 타입스크립트
- 성능최적화
- vue.js
Archives
- Today
- Total
몽땅뚝딱 개발자
[Spring Boot] H2 Hibernate 사용 시 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSource.. 본문
에러일지/JAVA
[Spring Boot] H2 Hibernate 사용 시 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSource..
레오나르도 다빈츠 2021. 10. 20. 09:32
Spring Boot + JPA 테스트 중 로컬에 DB를 따로 설치해야하는 상황이 번거로워 H2 Hibernate를 사용했다.
프로젝트를 run 할 때 src/main/resources 아래 데이터를 insert하는 쿼리인 data.sql이 제대로 실행되지 않았다.
에러
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed;
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Invocation of init method failed;
원인
처음 run 했을 때 이미 같은 테이블에 같은 데이터가 있는 상태에서 다시 insert를 할 때 생기는 에러이다.
해결
Spring Boot는 기본적으로 classpath 밑에 schema.sql이나 data.sql이 있으면 서버 부팅 시 스크립트를 실행한다.
그래서 최초 1회에서 테이블 생성 & 데이터 추가를 해야하며, 그 이후에는 동작하지 않도록 해야한다.
application.properties(또는 gradle)에 아래를 추가한다.
// 옵션으로 always를 설정하는 경우 스크립트를 매번 실행한다.
spring.sql.init.mode=never
// 이전의 설정값은 아래와 같았으나 설정값이 바뀌었다.
spring.datasource.initialization-mode=never
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'에러일지 > JAVA' 카테고리의 다른 글
Comments