我用Cassandra作为第三方商店点燃。为了持久化数据,我使用springboots-ignite-jpa实现,我的对象通常有未填充的字段,因此为空。自然地,当数据被持久化到cassandra中时,这会创建一个空值的墓碑(s),在我的例子中,由于数据量很大,墓碑会非常多。
有没有人知道有没有一种配置,我可以指定在插入期间不将字段(列)设置为空值?
我知道cassandra中的null值有一个特殊的含义,这种方法在更新为null时不会覆盖列值。不过,我不关心这个案子。
到目前为止,我所做的是实现我的定制cassandracachestorefactory,但是如果有更简单的方法的话,我一直在犹豫。
1条答案
按热度按时间icnyk63a1#
如果插入空值,集群端就无法告诉cassandra忽略它。
但在客户端,使用驱动程序可以告诉它忽略空值,这样它就不会将它发送给cassandra。
看看insertoptions.insertoptionsbuilder有一个方法告诉驱动程序忽略空值:对于insertnulls(布尔insertnulls),我认为它适合您的用例:
https://docs.spring.io/spring-data/cassandra/docs/current/api/org/springframework/data/cassandra/core/insertoptions.insertoptionsbuilder.html#withinsertnulls-布尔值-