我在多模块项目中创建了一个服务类加载器,同时还使用 Hibernate Integrator 来运行一些 DB 脚本,但我注意到应用程序进入了我的 Integrator 类 5 次。
我实现了以下课程:
public class FlywayIntegrator implements Integrator {
@Override
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
SessionFactoryServiceRegistry serviceRegistry) {
try {
// some code
} catch (Exception e) {
logger.error("Log", e);
}
}
@Override
public void disintegrate(SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) {
// TODO Auto-generated method stub
}
}
同样在文件 \src\main\resources\META-INF\services\org.hibernate.integrator.spi.Integrator 下,我添加了以下条目:
my.package.FlywayIntegrator
现在,当我的应用程序被部署时,我的类的“集成”方法正在重复执行 5 次。我不明白为什么它被触发了这么多次。任何想法都会受到欢迎。
注意:我在 5 个不同的模块中有 5 个不同的 persistence.xml 文件,我不确定是否存在关系。包含 Integrator 的模块有自己的 persistence.xml