4
votes

I have one column in the cassandra keyspace that is of type timeuuid. When I try to insert a reocord from the java code (using DataStax java driver1.0.3). I get the following exception

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)

Here is my sample code:

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()));

I have also tried to use UUIDs.timeBased() instead of now(). But I am gettting the same exception.

Any help on how to insert/read from timeuuid datatype would be appreciated.

1

1 Answers

2
votes

By mistake I had created

id  uuid

That is why when I try to insert timeuuid in the uuid type field I was getting that exception.

Now I have changed the type for id to timeuuid and everything is working fine.