Типы данных в драйвере Java CQL

Есть ли способ использовать короткие и байтовые значения в CQL? Я определил таблицу с полями int и могу хранить и читать оттуда короткие и байтовые значения, но если я пытаюсь связать значение в подготовленном выражении, я получаю ошибку. Я тоже пробовал варинт, но все равно не повезло. Это исключение, которое я получаю:

Invalid type for value 1 of CQL type varint, expecting class java.math.BigInteger but class java.lang.Byte provided

Вот определение таблицы:

CREATE TABLE "Timeline" (
    "BucketID" varchar,
    "CreationTime" timestamp,
    "Attr01" varint,
    "Attr02" bigint,
    "Attr03" varint,
    "Attr04" varint,
    "Attr05" uuid,
    "Message" text,
    PRIMARY KEY (("BucketID", "Attr01"), "CreationTime", "Attr02", "Attr03", "Attr04", "Attr05")
) WITH COMPACT STORAGE AND CLUSTERING ORDER BY ("CreationTime" DESC);

Есть ли способ использовать шорты / байты вместо того, чтобы всегда приводить / создавать целые числа?

1 ответ

Решение

Вот ссылка на типы данных CQL3 на диаграмму типов Java.

Я тоже пробовал варинт, но все равно не повезло.

Я бы подумал что varint должен был работать тоже. Но я вижу (по ссылке, указанной выше), что varint карты для BigInteger так что не повезло. В любом случае может показаться, что отображение между short и целочисленный тип CQL3 не существует.

Однако, если вы хотите сохранить байты, вы можете использовать blob Тип CQL3.

РЕДАКТИРОВАТЬ 20180727

Это выглядит как smallint в CQL теперь отображается на java.lang.Short,

Другие вопросы по тегам