Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 在SpringBoot中,根据数据库上的所有模式验证我的jpa模型_Hibernate_Spring Boot_Jpa - Fatal编程技术网

Hibernate 在SpringBoot中,根据数据库上的所有模式验证我的jpa模型

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

我刚刚将我的spring boot依赖项从2.1.8猛增到2.2.0,并遇到了这个问题

当我启动我的spring boot应用程序时。我已经设置了jpa,以根据数据库验证模型

在mariadb上,我有多个模式。我开发的每个应用程序都使用一个

我的数据源url如下所示。 url:
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版本。