如何将timeuuid插入到使用datastax java驱动程序的cassandra中或者TimeUUID的无效版本
问题描述:
我在cassandra keyspace中有一列是timeuuid类型的。当我尝试从java代码插入一个reocord时(使用DataStax java driver1.0.3)。我得到下面的异常如何将timeuuid插入到使用datastax java驱动程序的cassandra中或者TimeUUID的无效版本
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
数据类型读取任何帮助将不胜感激。
答
搞错我创造
id uuid
这就是为什么当我尝试在uuid
类型字段中插入timeuuid
我得到那个异常。
现在我已经改变了id的类型为timeuuid,一切工作正常。