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

最善の解決策は、JPAと作業を共有するのではなく、Flywayにテーブルも作成させることだと思います。

この質問とその選択された解決策を見てください。そこで、FlywayをHibernateライフサイクルにきれいに結び付ける方法を見ることができます。

そうは言っても、私が気付いていないより良い方法があるかもしれません。

于 2012-08-02T22:33:46.973 に答える