簡體   English   中英

未找到請求操作的編解碼器:[日期 <-> java.util.Date]

[英]Codec not found for requested operation: [date <-> java.util.Date]

在 Cassandra 中,列類型設置為 Date,在 Model 類中,字段類型設置為 java.util.Date,並帶有 getter 和 setter。 com.datastax.driver.mapping.Mapper.save我得到以下異常:

Codec not found for requested operation: [date <-> java.util.Date]

Caused by: com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [date <-> java.util.Date]
at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:56)
at com.datastax.driver.core.exceptions.CodecNotFoundException.copy(CodecNotFoundException.java:25)
at com.datastax.driver.mapping.DriverThrowables.propagateCause(DriverThrowables.java:41)
at com.datastax.driver.mapping.Mapper.save(Mapper.java:272)

在 Google 搜索過程中發現以下內容:

DATE      <-> com.datastax.driver.core.LocalDate : use getDate()

您必須將 java.util.Date 轉換為com.datastax.driver.core.LocalDate

例子:

 LocalDate localDate = LocalDate.fromMillisSinceEpoch(date.getTime());

我在使用時間戳時遇到了同樣的問題

reactor.core.Exceptions$ErrorCallbackNotImplemented: com.datastax.oss.driver.api.core.type.codec.CodecNotFoundException: Codec not found for requested operation: [TIMESTAMP <-> java.util.Date]
Caused by: com.datastax.oss.driver.api.core.type.codec.CodecNotFoundException: Codec not found for requested operation: [TIMESTAMP <-> java.util.Date]
    at com.datastax.oss.driver.internal.core.type.codec.registry.CachingCodecRegistry.createCodec(CachingCodecRegistry.java:609) ~[java-driver-core-4.9.0.jar:na]
    at com.datastax.oss.driver.internal.core.type.codec.registry.DefaultCodecRegistry$1.load(DefaultCodecRegistry.java:95) ~[java-driver-core-4.9.0.jar:na]
    at com.datastax.oss.driver.internal.core.type.codec.registry.DefaultCodecRegistry$1.load(DefaultCodecRegistry.java:92) ~[java-driver-core-4.9.0.jar:na]

從驅動程序 4.0 開始,CQL 類型的時間戳不再映射到java.util.Date ,而是映射到java.time.Instant 使用 Instant 對我有用。

在實體類中將 Date 類型替換為 LocalDate 類型:-

private LocalDate createdDate;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM