[英]Hibernate - Seed database without using import.sql
我來自php / laravel。 每當我想要為數據庫播種時,我只需要運行php artisan db:seed
。 這將運行一些將數據插入數據庫的PHP腳本。
我想使用spring / hibernate實現同樣的功能。 我知道我可以在架構創建后添加一個import.sql
文件來為數據庫設定種子。 但是,我想使用java和ORM導入這些燈具,所以我不需要維護一個sql。
有辦法嗎? 如果沒有,應該有一些配置來觸發使用ORM實體管理器的腳本在模式創建后持久化數據庫中的實體。 主要的想法是不要在模式修訂版上維護一個大的sql播種器文件。
謝謝!
如果您使用的是Spring數據,則可以使用Repository populator 。
否則,您可以注冊加載彈簧上下文后觸發的事件:
@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...)
}
}
有關更多詳細信息,請參閱: Spring Framework 4.2中更好的應用程序事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.