본문 바로가기
Backend

[SpringBoot] H2 insert sql script 오류

by GOMJ 2025. 5. 4.
insert into catalog(product_id, product_name, stock, unit_price) values ('CATALOG-0001', 'pizza', 100, 15000);
insert into catalog(product_id, product_name, stock, unit_price) values ('CATALOG-0002', 'chicken', 200, 18000);
insert into catalog(product_id, product_name, stock, unit_price) values ('CATALOG-0003', 'noodle', 1000, 8000);

 

DB에 샘플데이터를 미리 넣고 시작하려고 data.sql을 작성하였다.

 

그런데 다음과 같은 에러가 발생했다.

 

" Error creating bean with name 'dataSourceScriptDatabaseInitializer' ... Table not found"

 

테이블을 찾을 수 없어 insert가 불가능하다고 나온다.

해당 원인은 테이블명이 예약어라 못만들었는데 insert 하려해서 발생하거나, 테이블 생성 전인데 데이터를 insert 하려고 해서이다. 나의 경우는 테이블명이 예약어가 아니었기에 insert 순서보다 테이블을 먼저 생성하게끔 하는 옵션 "defer-datasource-initialization: true" 을 setting 파일에 넣어줬다.

 

spring:	
  jpa:
    defer-datasource-initialization: true
    hibernate:
      	ddl-auto: create-drop
    show-sql: true
    generate-ddl: true
  datasource:
    url: jdbc:h2:mem:testdb
    username: sa
    password:
    driver-class-name: org.h2.Driver

 

해결완료~

'Backend' 카테고리의 다른 글

Nexus 란?  (2) 2025.05.11
H2 데이터베이스 연결 시 "Database not found" 에러  (0) 2025.05.04
[JAVA]Backend, 안정적인 서비스 운영을 위한 EXCEPTION  (0) 2025.05.04
JPA 복합키  (0) 2025.04.13
SQL 쿼리 튜닝 방법  (0) 2025.03.30