как вставить timeuuid в cassandra с помощью java-драйвера datastax ИЛИ недействительной версии для TimeUUID

У меня есть один столбец в пространстве ключей cassandra, который имеет тип timeuuid. Когда я пытаюсь вставить перезапись из java-кода (используя java-драйвер DataStax 1.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.


person user2681607    schedule 03.10.2013    source источник


Ответы (1)


По ошибке я создал

id  uuid

Вот почему, когда я пытаюсь вставить timeuuid в поле типа uuid, я получаю это исключение.

Теперь я изменил тип id на timeuuid, и все работает нормально.

person user2681607    schedule 03.10.2013