我目前正在使用Spring多年后迁移到EJB3.1。我想在EJB中实现的一件事是我的MigrationManager,我找不到匹配的模式。 在Spring中,我有一个处理数据库模式和数据迁移的bean。为此,我实现了一个Spring BeanFactoryPostProcessor,因为这样我注入了数据库连接,但JPA系统尚未初始化。所以我可以执行所有迁移步骤,然后让应用程序完成开始。
如何在EJB3.1中执行类似的操作(使用CDI ......如果这很重要)
克里斯
答案 0 :(得分:0)
这是从EJB运行一些初始化代码的方法:
@Singleton
@Startup
public class MigrationManager {
@PostConstruct
public void migrate() {
// do work
}
}
您不需要单独的应用程序(如上面评论中所示)。
EntityManagers懒得实例化,所以只要你不将EntityManager
注入到其他一些启动代码中,这就可以让你有机会在EntityManager
实际命中之前更新你的数据库模式数据库。
顺便说一下,对于数据库架构迁移,我建议Liquibase,ServletContextListener
可以触发。{/ p>