簡體   English   中英

在創建表之前執行 schema.sql,在 schema.sql 中插入失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM