java - 如何使用 Quarkus 反应式客户端插入时间?
问题描述
我是 Quarkus 的新手,我正在尝试在表中插入一条记录,但表中包含时间字段,并且在插入记录时 Pgpool 不允许,为此我正在使用@JsonSerialize。
public class Table1{
private int id;
@JsonSerialize(using=JsonTimeSerializer.class)
private Date scheduleTime;
public Uni<Long> addRecords(PgPool client) {
String sql = "Insert into table1 (runtime) values ($1)";
Tuple t = Tuple.of(scheduleTime);
return client.preparedQuery(sql).execute(t).onItem()
.transform(pgRowSet -> pgRowSet.iterator().next().getLong("id"));
}
}
public class JsonTimeSerializer extends JsonSerializer<Date>{
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Override
public void serialize(Date date, JsonGenerator gen, SerializerProvider provider)
throws IOException, JsonProcessingException {
String formattedDate = dateFormat.format(date);
gen.writeString(formattedDate);
}
}
现在,在执行此操作时,我遇到了以下异常:
ESTEASY002020:未处理的异步异常,发回 500:io.vertx.core.impl.NoStackTraceThrowable:位置 [0] 的参数,类 = [java.util.Date] 和值 = [Thu Jan 01 12:26:26 IST 1970 ] 无法强制为预期的 class = [java.time.LocalTime] 进行编码。
谁能让我知道为什么会这样?我在做什么错?
我可以使用以下方式实现此目的,但我希望使用一些注释自动转换它。
对象[] 数组 = {scheduleTime.toInstant().atZone(ZoneId.systemDefault()).toLocalTime()};
解决方案
推荐阅读
- reactjs - 在 React 中将键呈现为 html 属性
- javascript - 使用搜索结果生成表格的最佳方式
- java - java.lang.IllegalArgumentException:参数'directory'不是android中的目录
- php - php邮件回复主题
- php - 如何在 PHP 中打印数组字符或数字的元素?
- android - 地图包含字符串的 Firestore 查询
- rust - 在实现的特征之间更改对象类型
- java - 迁移到 OpenJDK 11,哪个版本的 MySql 连接器与 java 11 兼容?
- javascript - 使用 Jquery 动态更改 RadDatePicker 的值
- sql - MS Access Count 一个表的唯一值出现在与第三个表相关的第二个表中