Spring boot 类java.time.LocalDateTime不能强制转换为类java.lang.String
目前我正在为我的spring boot项目使用liquibase->4.3.2和mysql->8.0.22。我正在尝试通过liquibase创建表。它第一次被执行。默认情况下,它创建2个数据库。1. 数据库更改日志和2数据库更改日志锁。但当我再次尝试运行时,它会给我以下错误: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
**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