Hibernate 在SpringBoot中,根据数据库上的所有模式验证我的jpa模型
我刚刚将我的spring boot依赖项从2.1.8猛增到2.2.0,并遇到了这个问题 当我启动我的spring boot应用程序时。我已经设置了jpa,以根据数据库验证模型 在mariadb上,我有多个模式。我开发的每个应用程序都使用一个 我的数据源url如下所示。 url:Hibernate 在SpringBoot中,根据数据库上的所有模式验证我的jpa模型,hibernate,spring-boot,jpa,Hibernate,Spring Boot,Jpa,我刚刚将我的spring boot依赖项从2.1.8猛增到2.2.0,并遇到了这个问题 当我启动我的spring boot应用程序时。我已经设置了jpa,以根据数据库验证模型 在mariadb上,我有多个模式。我开发的每个应用程序都使用一个 我的数据源url如下所示。 url:jdbc:mariadb://localhost:3306/energyserviceschema?useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedState
jdbc:mariadb://localhost:3306/energyserviceschema?useSSL=false&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&useMysqlMetadata=true
在升级spring启动版本之前,该模型已根据energyserviceschema进行了验证,并且有效。但是现在,如果我有其他模式和其他表,它就会失败
有趣的是,导致错误的并不是我的模型,因为jpa似乎从数据库加载元数据,然后验证我使用的模式,以查看预期的表是否存在,而不是它们所不存在的表。然后它会因为这个错误而失败
原因:
java.sql.SQLException:表'energyserviceschema.eventtable_sequence'
不存在
但在我的模型中,我没有事件表或事件表序列。那是另一个项目
升级时是否有其他人遇到此问题?或者我应该以不同的方式设置模式名吗?您可以在实体类的
@Table
annotation上定义模式
@Table(name="table_name", schema="schema_name")
那应该对你有帮助不,那没有帮助。我发现了这个bug,它指向了这个尚未修复的bug。对我来说,将hibernate版本回滚到5.4.0没有任何帮助,我不得不回滚到5.3.10.FINAL,然后它就消失了。最简单的方法是在pom文件中添加一个属性并定义5.3.10.Final,这将否决sprin gboot中的hibernate版本。