我正在处理我的java应用程序并使用cassandra作为带有datastax java驱动程序的数据存储。我正在使用Querybuilder构建我的查询。
更新查询很棘手,因为我只想在输入值不为空时才更改字段。
示例:
Statement st = QueryBuilder.
update("repo_info").
with(QueryBuilder.set("team", repo.getTeam())).
and(QueryBuilder.set("author", repo.getAuthor())).
and(QueryBuilder.set("git_project_url", repo.getGitProjectUrl())).
where(QueryBuilder.eq("name", name)).ifExists();
所以在这里我想说只有当repo.getTeam()(或输入)不为null时才更新团队,否则保持原样。有人可以帮忙吗?
由于
答案 0 :(得分:1)
NOT NULL 属性仅适用于Cassandra中的主键。在使用 st 查询构建器绑定信息之前,应检查 repo.getTeam()!= NULL 。这是最简单的方法之一。
例如:
PreparedStatement st = QueryBuilder.
update("repo_info").
with(QueryBuilder.set("team", QueryBuilder.bindMarker())).
and(QueryBuilder.set("author", QueryBuilder.bindMarker())).
and(QueryBuilder.set("git_project_url", QueryBuilder.bindMarker())).
where(QueryBuilder.eq("name", QueryBuilder.bindMarker())).ifExists();
if(repo.getTeam !=NULL){
session.execute(st.bind(repo.getTeam(),repo.getAuthor(),repo.getGitProjectUrl(),name));
}