java CQL驱动程序中的数据类型

时间:2014-04-23 13:10:37

标签: java cassandra cql cql3 cassandra-2.0

有没有办法在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,而不是总是使用/生成整数?

1 个答案:

答案 0 :(得分:7)

以下是CQL3 data types to Java types图表的链接。

  

我也试过varint,但仍然没有运气。

我原以为varint也应该有效。但我可以看到(在上面引用的链接中)varint映射到BigInteger,所以没有运气。在任何情况下,似乎不存在short和基于CQL3整数的类型之间的映射。

但是,如果要存储字节,可以使用blob CQL3类型。

编辑20180727

现在,CQL中的smallint映射到java.lang.Short