我有一个spring-boot:2.3.0.release应用程序,flyway:6.4.1和hibernate:hibernate-core:5.4.22.final,hibernate-validator:6.1.5.final,hibernate-commons-annotations:5.1.0.final。
我试着寻找错误,但找不到解决办法。我尝试应用这个答案,但是每当设置spring.jpa.hibernate.ddl auto=validate时,如果使用 none
, drop-create
珍惜一切回到常态。
我在docker中运行MySQL5.7,有表的数据库就在那里。
错误如下:
configservletwebserverapplicationcontext:上下文初始化期间遇到异常-取消刷新尝试:org.springframework.beans.factory.unsatifiedDependencyException:创建名为“requestmappinghandleradapter”的bean(在类路径资源中定义)时出错[org/springframework/boot/autoconfigure/web/servlet/webmvcautoconfiguration$enablewebmvcconfiguration.class]:通过方法'requestmappinghandleradapter'参数1表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.beancreationexception:创建名为“mvcconversionservice”的bean时出错,该bean在类路径资源[org/springframework/boot/autoconfigure/web/servlet/webmvcautoconfiguration$enablewebmvcconfiguration.class]中定义:通过工厂方法示例化bean失败;嵌套异常为org.springframework.beans.beaninstantiationexception:未能示例化[org.springframework.format.support.formattingconversionservice]:工厂方法“mvcconversionservice”引发异常;嵌套异常为org.springframework.beans.factory.beancreationexception:创建名为“customerrepository”的bean时出错,该bean在org.cloudwheel.files.configuration.customer.persistence.customerrepository中定义,该bean在jparepositoriesregistrar.enablejparepositoriesconfiguration上声明@enablejparepositories:无法解析对的引用设置bean属性“mappingcontext”时生成bean“jpamappingcontext”;嵌套异常为org.springframework.beans.factory.beancreationexception:创建名为“jpamappingcontext”的bean时出错:调用init方法失败;嵌套异常为javax.persistence.persistenceexception:[persistenceunit:default]无法构建hibernate sessionfactory;嵌套的异常是org.hibernate.tool.schema.spi.schemamanagementexception:架构验证:缺少表[my\u文件]
如何调试?我看到许多这样的问题,但没有一个解决办法对我有效。
注:表格 my_files
存在。我可以通过intellij和mysql workbench来验证这一点。另外,如果可能的话,我不想降级。
更新:
我确信数据库不是问题:
2020-12-01 14:24:04.795 info 23295---[restartedmain]o.s.b.w.embedded.tomcat.tomcatwebserver:tomcat初始化端口:8080(http)2020-12-01 14:24:04.800 info 23295---[restartedmain]o.apache.catalina.core.standardservice:启动服务[tomcat]2020-12-01 14:24:04.800 info 23295---[restartedmain]org.apache.catalina.core.standardengine:启动servlet引擎:[apache tomcat/9.0.35]2020-12-01 14:24:04.895 info 23295---[restartedmain]o.a.c.c.c.[tomcat].[localhost].[/]:初始化spring embedded webapplicationcontext 2020-12-01 14:24:04.895 info 23295---[restartedmain]o.s.web.context.contextloader:根webapplicationcontext:初始化完成于1762 ms 2020-12-01 14:24:07.982 info 23295---[restartedmain]o.f.c.internal.license.version打印机:flyway community edition 6.4.1由redgate 2020-12-01 14:24:07.986 info 23295---[restartedmain]com.zaxxer.hikari.hikaridatasource提供
:hikaripool-1-正在启动。。。2020-12-01 14:24:08.090信息23295---[restartedmain]com.zaxxer.hikari.hikaridatasource:hikaripol-1
启动已完成。2020-12-01 14:24:08.113信息23295---[restartedmain]o.f.c.internal.database.databasefactory:数据库:jdbc:mysql://localhost:3307/files (mysql 5.7)2020-12-01 14:24:08.186 info 23295---[restartedmain]o.f.core.internal.command.dbvalidate:成功验证了13个迁移(执行时间00:00.029s)2020-12-01 14:24:08.199 info 23295---[restartedmain]o.f.core.internal.command.dbmigrate:架构的当前版本 files
:1.13 2020-12-01 14:24:08.200信息23295---[restartedmain]o.f.core.internal.command.dbmigrate:架构 files
是最新的。无需迁移。2020-12-01 14:24:08.268信息23295---[restartedmain]o.s.s.concurrent.threadpooltaskexecutor:初始化executorservice'applicationtaskexecutor'2020-12-01 14:24:08.281信息23295---[restartedmain]o.s.s.c.threadpooltaskscheduler
:初始化executorservice'taskscheduler'2020-12-01 14:24:08.330信息23295---[task-1]o.hibernate.jpa.internal.util.loghelper:hh000204:正在处理persistenceunitinfo[name:default]2020-12-01 14:24:08.374信息23295---[task-1]org.hibernate.version:hh000412:hibernate orm核心版本5.4.22.final
2条答案
按热度按时间jckbn6z71#
正如@m.deinum在他的评论中提到的,flyway和hibernate可能没有连接到同一个数据源。对我来说,是因为
hibernate.temp.use_jdbc_metadata_defaults=true
. 我一搬走这个房子,一切就开始运转了。uubf1zoe2#
例外情况是
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing table [my_files]
.你说数据库
my_files
存在,但hibernate需要一个表my_files
呈现-例如,您使用annotation@table(name=“my\u files”),或者您有一个名为myfiles的实体。检查数据库是否包含表
my_files
.