jpa 无法使用Sping Boot (Hibernate)将初始数据添加到数据库

u7up0aaq  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(186)

我在我的Sping Boot 应用程序中使用Hibernate,填充表没有任何问题。但是,我试图在类路径上使用import.sql向填充的表中添加2条记录。

INSERT INTO role(id, role_type) VALUES(1, 'ADMIN');
INSERT INTO role(id, role_type) VALUES(2, 'USER');

我还设置了以下属性:

spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.defer-datasource-initialization=true
spring.sql.init.mode=always

当我运行应用程序时,创建了表并填充了数据,然后创建了表。更改表user_role删除外键”* 错误。
当我如下所示更新spring.jpa.hibernate.ddl-auto时,没有错误,并且创建了表。但是,记录没有插入到角色表中:

spring.jpa.hibernate.ddl-auto= update

那么,如何在运行应用程序时插入数据而不出现任何问题呢?

eyh26e7m

eyh26e7m1#

只有在spring.jpa.hibernate.ddl-auto设置为createcreate-drop时,才会执行import.sql
或者,您可以使用data.sql,它将在不考虑hibernate.ddl配置的情况下执行。
使用spring.jpa.hibernate.ddl-auto= updatedata.sql应该可以解决这两个错误。

spring.sql.init.mode=always 
spring.jpa.defer-datasource-initialization=true
spring.jpa.hibernate.ddl-auto= update

使用延迟数据源

相关问题