gpt4 book ai didi

java - 仅当输入值不为空时,查询生成器才创建更新语句

转载 作者:行者123 更新时间:2023-12-01 09:22:15 24 4
gpt4 key购买 nike

我正在开发我的 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()(或输入)不为空时才更新团队,否则保持原样。有人可以帮忙吗?

谢谢

最佳答案

NOT NULL 属性仅适用于 Cassandra 中的主键。在使用st查询生成器绑定(bind)信息之前,您应该检查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));
}

关于java - 仅当输入值不为空时,查询生成器才创建更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40098751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com