升级AWS RDS MySQL后出现ClassCastException

问题描述 投票:0回答:1

我们有一个 Spring boot Web 应用程序,其中 spring boot 版本是 1.5.6。将 AWS MySQL RDS 从 5.7.0 升级到 8.0.28 后,我们收到 liquibase 错误。我已将 pom.xml 中的 MySQL 连接器依赖项升级到版本 8.0.34,并将 liquibase-core 版本升级到 3.7.0。

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-core</artifactId>
    <version>3.7.0</version>
</dependency>
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.34</version>
</dependency>

我添加了更改驱动程序类名称和休眠方言

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect

我收到错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource
[org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ClassCastException: java.time.LocalDateTime cannot be cast to java.lang.String

请帮我解决这个问题

java mysql spring-boot amazon-rds liquibase
1个回答
0
投票

当 Liquibase 尝试执行包含更改集的更改日志时,通常会出现此问题,该更改集具有专为 String 类型设计的值属性,但却收到 LocalDateTime 类型。

1-检查更改日志文件:彻底检查您的 Liquibase 更改日志文件,以查明涉及强制转换或转换为字符串类型的任何更改集。请密切注意预期为 String 但遇到 LocalDateTime 或其他不兼容类型的属性。 2-调整更改集:一旦确定了麻烦的更改集,请进行必要的调整以适当地处理 LocalDateTime 或其他类型。这可能需要修改数据类型或在更改集中实现转换。

© www.soinside.com 2019 - 2024. All rights reserved.