由于基础设施限制,我们无法将运行的Cassandra版本升级为> 2.2,所以我们必须使用2.0.7。遗憾的是,此版本不支持使用UNSET
。由于我们编写的数据具有可以为空的列,据我所知,我们可以创建自己的null
概念(即空字符串,空数据结构),或创建多个PreparedStatements(相同的查询,但忽略)包含null
值的字段,因为我们不希望将null
绑定到Prepared Statement。
Cassandra现在正在抛出一个13:13:28.679 [cluster1-worker-5] WARN com.datastax.driver.core.Cluster - Re-preparing already prepared query. Please note that preparing the same query more than once is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once.
这种情况下最好的解决方法是什么?大多数指南都告诉我们只需使用UNSET
:(。
答案 0 :(得分:0)
创建包含每列默认值的ENUM
。
如果为NULL
,则创建将返回默认值的getter方法。
在查询Cassandra之前,将Nullable属性的默认值作为数据验证的一部分。
如果您需要更多帮助,请添加相关架构。