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

时间:2016-08-03 13:16:05

标签: java spring hibernate seeding

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

我想使用spring / hibernate实现同样的功能。我知道我可以在架构创建后添加import.sql文件来为数据库设定种子。但是,我想使用java和ORM导入这些灯具,所以我不需要维护一个sql。

有办法吗? 如果没有,应该有一些配置来触发使用ORM实体管理器的脚本在模式创建后持久化数据库中的实体。 主要的想法是不要在模式修订版上维护一个大的sql播种器文件。

谢谢!

1 个答案:

答案 0 :(得分:0)

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

否则,您可以注册加载弹簧上下文后触发的事件:

@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