gpt4 book ai didi

java - 未找到请求的操作的编解码器 : [timestamp <-> java. util.UUID]

转载 作者:行者123 更新时间:2023-12-01 09:13:32 24 4
gpt4 key购买 nike

我在 Cassandra 中有一个表,我正在尝试迭代并从中提取内容。我正在使用 datastax java 驱动程序 3.1.0。

CREATE TABLE test (
client_id int,
process_id text,
last_modified_date timestamp,
PRIMARY KEY ((client_id), process_id)
)

下面是代码:

private List<MetaHolder> getMetaHolder() {
List<MetaHolder> metaHolder = new ArrayList<>();
String sql = "select * from test where client_id=1";
try {
BoundStatement bs = Cache.getInstance().getStatement(sql);
bs.setConsistencyLevel(ConsistencyLevel.QUORUM);

ResultSet res = session.execute(bs);
Iterator<Row> rows = res.iterator();
while (rows.hasNext()) {
Row row = rows.next();
String processId = row.getString("PROCESS_ID");
// this line throws exception
UUID lastModifiedDate = row.getUUID("LAST_MODIFIED_DATE");
MetaHolder metadata =
new MetaHolder(processId, lastModifiedDate);
metaHolder.add(metadata);
}
} catch (Exception ex) {
LOGGER.logError("error= ", ExceptionUtils.getStackTrace(ex));
}
return metaHolder;
}

以下是异常(exception)情况:

error= com.datastax.driver.core.exceptions.CodecNotFoundException: Codec not found for requested operation: [timestamp <-> java.util.UUID]

如果可能的话,有什么方法可以通过创建编解码器来使用 JodaTime,而不是在代码中使用 UUID?

最佳答案

更改以下代码

UUID lastModifiedDate = row.getUUID("LAST_MODIFIED_DATE");

Date lastModifiedDate = row.getTimestamp("LAST_MODIFIED_DATE");

可以从Date中获取joda DateTime

DateTime lastModifiedDateTime = new DateTime(lastModifiedDate);

关于java - 未找到请求的操作的编解码器 : [timestamp <-> java. util.UUID],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40757929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com