프로젝트/2023 개발

[에러] nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "테이블명" not found (this database is empty);

2023. 11. 16. 11:31

참고: https://unhosted.tistory.com/83

 

기동하면서 data.sql 돌아서 초기 디비 생성되고 데이터 들어가는데 에러 발생함.

 

에러 내용

nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "테이블명" not found (this database is empty);

 

원인

스프링 버전 2.4.x에서는 그냥 되는데 스프링 버전 2.5.x에서는 SQL Script DataSource Initialization의 기능이 변경되어 data.sql 스크립트는 hibernate가 초기화되기 전에 실행되며 hibernate에 의해 생성된 스키마에 데이터를 넣기 위해 data.sql을 사용하고 싶으면 spring.jpa.defer-datasource-initialization 이 값을 true로 하라고 되어있다.

 

해결

spring.jpa.defer-datasource-initialization: true 추가

 

주의점

데이터 초기화 기술을 섞지 말 것..