2012-08-02 49 views
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', '[email protected]', 1, 0, now()) [42102-168] 

JPA設置來創建表。當我在JPA中啓用日誌時,它顯示上述錯誤發生在JPA創建數據庫之前。

有沒有辦法在JPA數據庫上偵聽它是否準備好?我只找到實體本身的監聽器,但沒有爲PersistenceManager生命週期找到它。

+0

顯然,JPA與創建數據庫無關。有些實現可能會提供,但它不是JPA。 – DataNucleus 2012-08-03 06:30:22

回答

1

我相信最好的解決方案是讓Flyway創建表格,而不是與JPA共享工作。請參考this question and its chosen solution。在那裏你可以看到如何幹淨地將Flyway連接到Hibernate生命週期。

話雖如此,我可能有更好的方式,我只是不知道。

相關問題