【发布时间】:2021-05-16 02:28:52
【问题描述】:
我有一个关于在 Spring-Boot 中初始化数据的问题。 我有这个:
@PostConstruct
public void run() {
try {
upload(path);
logger.info("Seeding dictionary database...");
} catch (IOException e) {
//.....
}
}
run() 方法读取 .json 文件并在应用程序启动时使用文件中的信息填充数据库。但我也有一个 .sql 文件,它在启动时也会填充数据库。从 .sql 文件初始化创建的表与从 .json 文件创建的表相关
当应用启动时我有
INSERT INTO "USER_DICTIONARY"("DICTIONARY_ID", "USER_ID") VALUES (1, 0)
我的 import.sql 中有这一行,但这会导致错误,因为 DICTIONARY_ID 不存在 jet,因为它来自 import.sql 之后加载的 .json 文件 在执行sql文件时,需要从.json文件中检索到的数据才能正确映射该表。
是否可以在执行 .sql 文件之前执行我的 run() 方法,还是可以通过其他方式解决?如果是这样,请帮我找到答案。
【问题讨论】:
标签: java spring spring-boot hibernate h2