Типы данных в драйвере 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
,