有没有办法在CQL中使用短值和字节值?我已经定义了一个带有int字段的表,并且可以从那里存储和读取短值和字节值,但是如果我尝试在预准备语句中绑定一个值,则会出现错误。我也试过varint,但仍然没有运气。这是我得到的例外:
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);
有没有办法使用short / bytes,而不是总是使用/生成整数?
答案 0 :(得分:7)
以下是CQL3 data types to Java types图表的链接。
我也试过varint,但仍然没有运气。
我原以为varint
也应该有效。但我可以看到(在上面引用的链接中)varint
映射到BigInteger
,所以没有运气。在任何情况下,似乎不存在short
和基于CQL3整数的类型之间的映射。
但是,如果要存储字节,可以使用blob
CQL3类型。
编辑20180727
现在,CQL中的smallint
映射到java.lang.Short
。