有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java查询生成器仅在输入值不为null时创建更新语句

我正在开发我的java应用程序,并使用cassandra作为带有datastax java驱动程序的数据存储。我正在使用Querybuilder构造查询

更新查询很棘手,因为我只想在输入值不为null时更改字段

例如:

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();

所以这里我想说的是,只有在回购的情况下更新团队。getTeam()(或输入)不为null,否则保持原样。有人能帮忙吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    NOT NULL属性仅适用于Cassandra中的主键。在使用st查询生成器绑定信息之前,应选中repo。getTeam()=空。这是最简单的方法之一

    例如:

    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));          
    }