问题描述
我正在使用 R2DBC MysqL 学习 Reative jdbc。我有一个这样的存储库:
public interface VerificationTokenRepository extends ReactiveCrudRepository<VerificationToken,Long> {
VerificationToken 类如下所示:
@Table
public class VerificationToken {
@Id
private final Long id;
@Column
private final String code;
@Column
private final Date validUntil;
@Column
private boolean used;
@Column
private Long userId;
@Column
private Long verificationTokenType;
创建表的脚本是这样的:
create table verification_token (
id int unsigned not null AUTO_INCREMENT,code varchar(36) not null,valid_until datetime not null,used boolean not null,verification_token_type_id int unsigned not null,user_id int unsigned,PRIMARY KEY (id),constraint verification_token_type_fk FOREIGN KEY (verification_token_type_id) REFERENCES verification_token_type(id),CONSTRAINT user_id_fk FOREIGN KEY (user_id) REFERENCES user(id)
);
当我执行方法 verificationTokenRepository.save 时,控制台显示此错误:
Caused by: java.lang.IllegalArgumentException: Cannot encode parameter of type java.util.Date
at io.r2dbc.h2.codecs.DefaultCodecs.encode(DefaultCodecs.java:73)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Error has been observed at the following site(s):
|_ checkpoint ⇢ sql "INSERT INTO verification_token (code,valid_until,used,user_id,verification_token_type) VALUES ($1,$2,$3,$4,$5)" [DatabaseClient]
Stack trace:
POM 文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<!-- For testing possibility -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>dev.miku</groupId>
<artifactId>r2dbc-MysqL</artifactId>
<version>0.8.2.RELEASE</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-h2</artifactId>
</dependency>
如何使用 R2DBC 存储日期?或者如果 R2DBV 支持它?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)