data.sql
의 쿼리가 적용 안 되는 문제에 대해 구글링 했을 때
공통으로 나오는 해결 방법은 application.properties
또는 appliation.yml
파일에 아래 코드를 추가하는 것이다. 이는 스프링부트의 2.5버전부터는 data.sql이 hibernate가 초기화되기 전에 실행되기 때문에 발생하는 문제로, 아래 코드만 추가하면 간단히 해결된다. 아니 됐었다.
- application.properties
spring.jpa.defer-datasource-initialization=true
- application.yml
spring: jpa: defer-datasource-initialization: true
스프링부트 2.7.7 버전을 사용하는 현시점에서는 위 코드만으로는 해결이 되지 않는다. 그래서 또 구글링해 본 결과, 다음과 같은 코드도 같이 추가하면 해결된다고 했지만, 여전히 해결되지 않았다.
spring.datasource.initialization-mode: always
분명 또 뭐가 바뀐 게 있겠지 싶어서 직접 >>스프링부트 2.7 configuration changelog<<를 찾아봤다.
spring.datasource.initialization-mode
가 spring.sql.init.mode
로 대체되었다고 한다. 따라서 아래 코드를 추가해주면 해결된다.^0^~*
spring.sql.init.mode=always