Cassandra CQL Java驱动程序返回空列表而不是null

时间:2017-11-06 17:58:57

标签: java cassandra cql3

我有一个自定义类型,如下所示:

CREATE TYPE IF NOT EXISTS typetest (
  id text,
  name text,
  parents list<text>
);

一个表格,它将此自定义类型与另一个文本列表一起使用:

CREATE TABLE IF NOT EXISTS randomTable (
    id text,
    categories frozen<list<word>>,
    kitProducts list<text>,

    PRIMARY KEY (id)
) WITH compaction = {'unchecked_tombstone_compaction': 'true', 'tombstone_threshold': '0.1', 'class': 'LeveledCompactionStrategy'}
AND compression = {'chunk_length_kb': '64', 'sstable_compression': 'DeflateCompressor'};

在我插入一个值后,使用kitProducts = null和parents = null:

insert into randomTable (id, categories) values ('id1',[{id: 'hey', name: 'how', parents: null }]);

当我尝试使用Java库(MappingManager - http://docs.datastax.com/en/drivers/java/3.1/com/datastax/driver/mapping/MappingManager.html)读取此数据时,类别父属性是一个空列表, kitProducts 属性一片空白。我在某处读到CQL驱动程序将具有null值的列表转换为性能porpouses的空列表,但在这种情况下只转换为一个案例而我找不到原因。 是不是因为它是自定义类型? 我不介意如果返回一个空列表或null,我只需要它在所有情况下都是相同的。

感谢任何帮助,

问候。

PS:我正在使用datastax.driver.core版本3.1

0 个答案:

没有答案