[英]schema.sql executed before table creation, inserts in schema.sql fails
我有一個帶有 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
。 我怎么能得到呢?
schema.sql用於創建表( CREATE TABLE
,...),而不用於插入記錄。 我不知道如何創建表,但是我想它們要么已經創建,要么正在使用Hibernate的generate DDL選項之類的東西。
無論如何,要在現有表中插入或更新記錄,應使用data.sql 。 因此,在您的情況下,應將文件重命名為data.sql以使其正常工作。
有關此內容的更多信息,請參見文檔 。
1.) 將文件重命名為 data.sql
2.) 將以下行添加到 application.properties:
spring.jpa.defer-datasource-initialization = true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.