如何解决Spring-boot + Ignite在Cassandra中创建空值墓碑
我将cassandra用作Ignite的第三方商店。为了将数据持久保存到Ignite,我使用spring-boots ignite-jpa实现,并且我的对象通常具有未填充的字段,因此为null。自然地,当数据保留到cassandra中时,这将创建一个空值逻辑删除,在我的情况下,由于数据量很大,会创建很多逻辑删除。
有人知道我是否可以指定在插入期间不设置(取消设置)具有空值的字段(列)吗?
我知道cassandra中的null值具有特殊含义,这种方法最终不会在更新为null的情况下覆盖列值。但是,我不关心这种情况。
到目前为止,我所做的是实现我的自定义CassandraCacheStoreFactory,但是如果有更简单的方法,我会徘徊。
解决方法
如果您插入null值,则集群侧无法告诉Cassandra忽略它。
但是在客户端,您可以使用驱动程序告诉它忽略空值,这样它就不会将其发送给Cassandra。
看看InsertOptions.InsertOptionsBuilder,有一种方法告诉驱动程序忽略空值:withInsertNulls(boolean insertNulls),我认为它适合您的用例:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。