JPA初始化数据的最佳方法是什么?

时间:2014-03-04 07:08:57

标签: java maven jpa

是否有人通过将某些代码放入某些初始化类的静态构造函数或类似的东西来初始化数据?我想知道这样的posibillity在哪里:

@EJB //some bean
public someDataClassOrFacade {
  static {
    if(DataFacade.checkIfThereIsNoExampleData()) {
     SomeDataClass sdc = new SomeDataClass();
     // (...) set data
     DataFacade.create(sdc);
    }
   }
} 

您如何看待这种初始化数据的方式?我不相信使用maven SQL插件的SQL查询,因为它具有低灵活性(假设数据结构可以更改,尤其是列名称)。但是,我不太确定什么时候会上课。但这只是我的理论实践,也许你使用的东西比那更好?感谢。

2 个答案:

答案 0 :(得分:0)

我想在我看来尽可能晚地初始化数据,所以静态初始化器对我来说是禁忌。这取决于我将初始化的应用程序类型。如果有一个Web层,我可能会使用Web框架特定的初始化方法或servlet上下文监听器。如果只有一个EJB层,我可能会在使用@Startup注释的单例EJB中执行此操作,因为我快速搜索的这个线程显示:

EJB stateless - Private members initialisation

答案 1 :(得分:-1)

我使用Liquibase而不是EJB。它专为数据库管理而设计。