在Scala中转换为Option时,Cassandra unset int变为0

时间:2016-01-07 10:01:58

标签: scala cassandra cassandra-2.0 datastax-java-driver

我有一个cassandra行

slug | logo | name | priority
------+------+------+----------
test | null | Test |     null

我使用datastax java驱动程序查询此结果,然后将Row映射到Scala案例类:

Brand(r.getString("slug"), r.getString("name"), Option(     r.getInt("priority") )  ,Option( r.getString("logo")))

结果应该是:

Brand(test,Test,None,None)

但我明白了:

Brand(test,Test,Some(0),None)

插入时未设置prioritylogo字段。如果我只是打印行,我会得到正确的结果:

[Row[test, NULL, Test, NULL]]

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

谢谢@Lukasz,我现在可以看到问题了。

由于我无法更改数据模型,因此我在映射时最终进行了isNull检查。

Brand(r.getString("slug"), r.getString("name"),(if( r.isNull("priority") ) None else Some(r.getInt("priority")) ), Option( r.getString("logo")))