我有一个带有Table实体的项目。我想从schema.sql
运行一些SQL来更新我的表以进行测试。但我发现Spring首先应用schema.sql
然后创建带有@Table
注释的表。
所以表没有创建,我得到的错误信息是:
嵌套异常是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
这是scheam.sql
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);
所以我想首先创建表,然后应用我的schema.sql
。我怎么能得到它?
答案 0 :(得分:2)
schema.sql 用于创建表(CREATE TABLE
,...),而不是用于插入记录。我不知道你是如何创建表的,但我猜他们已经创建了或者你正在使用Hibernate生成DDL选项之类的东西。
无论如何,要在现有表中插入或更新记录,您应该使用 data.sql 。因此,在您的情况下,您应该将文件重命名为data.sql以使其正常工作。
有关此内容的更多信息,请参阅documentation。