0

有时 createEntitymanagerFactory 可能需要一段时间,特别是在需要创建数据库时。

我正在为我的数据库使用 Flyway,并开始在迁移过程中发现问题。查看日志似乎我正在尝试在创建表之前进行迁移。例如

Table "XINCO_CORE_USER" not found; SQL statement:
INSERT INTO `xinco_core_user` (`id`, `username`, `userpassword`, `last_name`, `first_name`, `email`, `status_number`, `attempts`, `last_modified`) VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', 'Xinco', 'admin@xinco.org', 1, 0, now()) [42102-168]

JPA 设置为创建表。当我在 JPA 中启用日志时,它显示上述错误发生在 JPA 完成创建数据库之前。

有没有办法监听 JPA 数据库以知道它何时准备就绪?我只找到实体本身的侦听器,但没有找到 PersistenceManager 生命周期的侦听器。

4

1 回答 1

1

我相信最好的解决方案是让 Flyway 也创建表,而不是与 JPA 共享工作。

看看这个问题及其选择的解决方案。在那里你可以看到如何干净地将 Flyway 与 Hibernate 生命周期联系起来。

话虽如此,我可能还没有意识到更好的方法。

于 2012-08-02T22:33:46.973 回答