2017-01-30 1 views
-1

테이블 엔티티가있는 프로젝트가 있습니다. schema.sql에서 일부 SQL을 실행하여 테스트 용 테이블을 업데이트하려고합니다. 그러나 나는 봄이 먼저 schema.sql을 적용한 다음 @Table 주석이있는 테이블을 생성한다는 것을 알게되었습니다. 그래서 테이블이 생성되지 않고 다음과 같은 에러 메시지가 나타납니다 :schema.sql이 테이블 생성 전에 실행되고 schema.sql에 삽입이 실패합니다.

중첩 예외는 org.h2.jdbc.JdbcSQLException입니다 : 테이블 "BOOK"을 찾을 수 없습니다; SQL 문 :

이 내 표입니다 :

@Entity 
@Table(name="BOOK") 
public class Book { 

    @Id 
    @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Long bookId; 
//and all getter and setters 

이이

INSERT INTO book VALUES (1, 'Of Mice and Men', '1954-11-08', 100, 11.00); 
INSERT INTO book VALUES (2, 'One Flew Over the Cuckoos Nest', '1973-11-08', 100, 15.00); 
INSERT INTO book VALUES (3, 'For Whom the Bell Tolls', '1932-11-08', 100, 13.00); 

scheam.sql 그래서 내가 먼저 테이블을 만든 다음 내 schema.sql을 적용 할 수 있습니다. 내가 어떻게 얻을 수 있니?

답변

2

schema.sql은 레코드를 삽입하는 테이블이 아니기 때문에 (CREATE TABLE, ...) 테이블을 생성하기위한 것입니다. 나는 당신이 당신의 테이블을 만드는 방법을 모른다. 그러나 나는 그것들이 이미 생성되었거나 Hibernate가 DDL 옵션을 생성하는 것과 같은 것을 사용하고 있다고 생각한다.

아무튼 기존 테이블에 레코드를 삽입하거나 업데이트하려면 data.sql을 사용해야합니다. 따라서 귀하의 경우에는 파일을 data.sql로 이름을 바꿔서 작동시켜야합니다.

자세한 내용은 documentation에서 확인할 수 있습니다.

+0

예. @Table anotation을 사용하여 생성됩니다. 확인하고 이름을 바꾸도록하겠습니다. – Kenji

관련 문제