gpt4 book ai didi

java - Hibernate - 不使用 import.sql 的种子数据库

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:38 25 4
gpt4 key购买 nike

我来自 php/laravel。每当我想为数据库播种时,我只需要运行 php artisan db:seed。这将运行一些将数据插入数据库的 php 脚本。

我想使用 spring/hibernate 实现同样的功能。我知道我可以在模式创建后添加一个 import.sql 文件来为数据库播种。但是,我想使用 java 和可用的 ORM 导入这些固定装置,因此我不需要维护 sql。

有办法吗?如果没有,应该有一些配置来触发一个脚本,该脚本使用 ORM 实体管理器在模式创建后将实体保存在数据库中。主要思想是不要在架构修订时维护一个大的 sql seeder 文件。

谢谢!

最佳答案

如果您使用的是 Spring 数据,则可以使用 Repository populators .

否则,您可以注册一个在加载 spring 上下文后触发的事件:

@Component
public class YourListener {

// Declare your autowired beans here

@EventListener
public void handleContextRefresh(ContextRefreshedEvent event) {
// Your seeder
// + You can use all the registred beans (repositories, services...)
}
}

更多细节检查:Better application events in Spring Framework 4.2

关于java - Hibernate - 不使用 import.sql 的种子数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com