如何使用datastax java驱动程序将timeuuid插入cassandra或TimeUUID的版本无效
Posted
技术标签:
【中文标题】如何使用datastax java驱动程序将timeuuid插入cassandra或TimeUUID的版本无效【英文标题】:how to insert timeuuid into cassandra using datastax java driver OR Invalid version for TimeUUID 【发布时间】:2013-10-10 07:50:09 【问题描述】:我在 cassandra 键空间中有一个类型为 timeuuid 的列。当我尝试从 java 代码中插入记录时(使用 DataStax java driver1.0.3)。我得到以下异常
com.datastax.driver.core.exceptions.InvalidQueryException: Invalid version for TimeUUID type.
at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:35)
at com.datastax.driver.core.ResultSetFuture.extractCauseFromExecutionException(ResultSetFuture.java:269)
at com.datastax.driver.core.ResultSetFuture.getUninterruptibly(ResultSetFuture.java:183)
at com.datastax.driver.core.Session.execute(Session.java:111)
这是我的示例代码:
PreparedStatement statement = session.prepare("INSERT INTO keyspace:table " +
"(id, subscriber_id, transaction_id) VALUES (now(), ?, ?);");
BoundStatement boundStatement = new BoundStatement(statement);
Session.execute(boundStatement.bind(UUID.fromString(requestData.getsubscriberId()),
requestData.getTxnId()));
我也尝试使用UUIDs.timeBased()
而不是now()
。但我得到了同样的例外。
任何有关如何插入/读取 timeuuid
数据类型的帮助将不胜感激。
【问题讨论】:
【参考方案1】:我错误地创建了
id uuid
这就是为什么当我尝试在 uuid
类型字段中插入 timeuuid
时出现异常。
现在我已将 id 的类型更改为 timeuuid,一切正常。
【讨论】:
以上是关于如何使用datastax java驱动程序将timeuuid插入cassandra或TimeUUID的版本无效的主要内容,如果未能解决你的问题,请参考以下文章
使用 datastax 驱动程序,如何将非原始列读取为 JSON 字符串?
无法使用 datastax java 驱动程序通过 UDT 键从 cassandra 检索