Java Cassandra QueryBuilder检查null
我被要求将一些使用Cassandra驱动程序v3的Java代码迁移到Cassandra驱动程序v4 导致我出现问题的请求之一是以下请求(驱动程序V3): 引起我问题的部分是Java Cassandra QueryBuilder检查null,java,cassandra,null,Java,Cassandra,Null,我被要求将一些使用Cassandra驱动程序v3的Java代码迁移到Cassandra驱动程序v4 导致我出现问题的请求之一是以下请求(驱动程序V3): 引起我问题的部分是.onlyIf(QueryBuilder.eq(COLUMN\u INSTANCE\u ID,null))不要问我为什么这个请求最初是这样写的-它就是这样做的 我没有找到为Cassandra驱动程序v4编写该查询的方法,因为查询中有空值。 我通过在查询中添加命名bindmarker并在绑定它时提供null作为值来“欺骗”(驱动
.onlyIf(QueryBuilder.eq(COLUMN\u INSTANCE\u ID,null))代码>不要问我为什么这个请求最初是这样写的-它就是这样做的
我没有找到为Cassandra驱动程序v4编写该查询的方法,因为查询中有空值。
我通过在查询中添加命名bindmarker并在绑定它时提供null作为值来“欺骗”(驱动程序V4):
但我正在寻找一个“真正的”解决方案
QueryBuilder
.update(keyspaceName, TABLE_BLOCK_CURSOR_NAME)
.with(QueryBuilder.set(COLUMN_INSTANCE_ID, QueryBuilder.bindMarker()))
.where(QueryBuilder.eq(COLUMN_OBJECT_ID, QueryBuilder.bindMarker()))
.onlyIf(QueryBuilder.eq(COLUMN_INSTANCE_ID, null));
QueryBuilder
.update(keyspaceName, TABLE_BLOCK_CURSOR_NAME)
.setColumn(COLUMN_INSTANCE_ID, QueryBuilder.bindMarker())
.whereColumn(COLUMN_OBJECT_ID).isEqualTo(QueryBuilder.bindMarker())
.ifColumn(COLUMN_INSTANCE_ID).isEqualTo(QueryBuilder.bindMarker(NULL_MARKER)));