Spring boot 类java.time.LocalDateTime不能强制转换为类java.lang.String

Spring boot 类java.time.LocalDateTime不能强制转换为类java.lang.String,spring-boot,liquibase,mysql-connector,Spring Boot,Liquibase,Mysql Connector,目前我正在为我的spring boot项目使用liquibase->4.3.2和mysql->8.0.22。我正在尝试通过liquibase创建表。它第一次被执行。默认情况下,它创建2个数据库。1. 数据库更改日志和2数据库更改日志锁。但当我再次尝试运行时,它会给我以下错误: **Caused by: java.lang.ClassCastException: class java.time.LocalDateTime cannot be cast to class java.lang.Stri

目前我正在为我的spring boot项目使用liquibase->4.3.2mysql->8.0.22。我正在尝试通过liquibase创建表。它第一次被执行。默认情况下,它创建2个数据库。1. 数据库更改日志和2数据库更改日志锁。但当我再次尝试运行时,它会给我以下错误:

**Caused by: java.lang.ClassCastException: class java.time.LocalDateTime cannot be cast to class java.lang.String (java.time.LocalDateTime and java.lang.String are in module java.base of loader 'bootstrap')**
my db.changelog-1.0.xml的代码:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

        <changeSet id="1" author="auth1">
            <sql>
                CREATE TABLE user (
                id BIGINT NOT NULL AUTO_INCREMENT,
                fname VARCHAR(255) NOT NULL,
                lname VARCHAR(255) NOT NULL,
                email VARCHAR(255) NOT NULL,
                number BIGINT NOT NULL,
                password VARCHAR(255) NOT NULL,
                role VARCHAR(255) NOT NULL,
                CONSTRAINT PK_id PRIMARY KEY (id)
                );
            </sql>
            <rollback>
                DROP TABLE user;
            </rollback>
        </changeSet>
    
        <changeSet id="2" author="auth1">
            <sql>
                CREATE TABLE plant (
                plantname VARCHAR(50)
                )

            </sql>
            <rollback>
                DROP TABLE plant;
            </rollback>
        </changeSet>

</databaseChangeLog>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">

    <include file="/db/changelog/db.changelog-1.0.xml"></include>

</databaseChangeLog>

我还尝试将mysql版本更改为原来的版本。如何解决这个问题?

对我来说,这是在使用spring boot v:2.4.0时发生的
尝试使用Spring boot版本2.3.0.RELEASE或更早版本

这只是liquibase和MySQL之间的版本控制问题。

用户
mohiitg
评论说,更改为liquibase版本4.3.1解决了问题

截至2021-05-03,版本4.3.5可用。更新到此版本为我解决了错误


ClassCastException的完整堆栈跟踪是什么??您能试着用不同版本的liquibase检查一下吗?这似乎与liquibase有关,但我不确定这个问题出现的版本。我需要检查一下。同时,试一下其他版本的液化酶。@RakhiAgrawal,其实我之前已经查过了。。有些帖子有同样类型的问题,问题是在mysql版本,liquibase根据帖子是不是可以啊?谢谢分享细节。如果有帮助的话,也许你可以尝试改变mysql的版本。我也面临同样的问题。将liquibase版本更改为4.3.1帮助我解决了这个问题。参考:[此处]()
spring.application.name = Cleandrop-Backend


spring.datasource.url = jdbc:mysql://localhost:3306/cleandrop?useUnicode=true&userLegacyDatetimeCode=false&serverTimezone=UTC&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true&useSSL=true
spring.datasource.username = root
spring.datasource.password = 1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.jpa.hibernate.ddl-auto=none

spring.liquibase.change-log=classpath:/db/changelog/db.changelog-master.xml

serverTimeZone=user-defined-time-zone