簡體   English   中英

Hibernate - 不使用import.sql的種子數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM