我有一个使用JPA / Hibernate和flyway-play的播放应用程序。我遵循了https://github.com/flyway/flyway-play上的说明。
当我第一次使用空数据库启动应用程序时,出现以下错误:
[warn] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1146, SQLState: 42S02
[error] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Table 't_users' doesn't exist
[debug] application - Directory for migration files found. db/migration/default
[error] application -
! @7bomi5e22 - Internal server error, for (GET) [/] -> play.api.UnexpectedException: Unexpected exception[CreationException: Unable to create injector, see the following errors:
1) Error injecting constructor, java.lang.RuntimeException: JPA transaction failed
...
在flyway-play执行SQL脚本填充数据库之前,Hibernate似乎开始运行(第一个错误)。然后,flyway执行脚本,但是之后,JPA仍然看不到表(第二个错误)
然后,如果我再次启动服务器,则可以正常工作,因为现在所有表都已创建。
有没有一种方法可以配置应用程序,以便在休眠之前启动flyway?