gpt4 book ai didi

java - Querydsl 更新子句填充跳过 bean 空值属性

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:26 26 4
gpt4 key购买 nike

当使用带有 bean 的空值属性的填充调用时,SQLUpdateClause 出现问题。它只是从生成的更新 SQL 中跳过空值属性,而不是将相应的字段设置为 NULL。

例子:

public class Bean {

private Long id;

private String value;

private String value2;

...
}

Bean bean = ...

bean.setValue(null);
bean.setValue("value2");

SQLUpdateClause update = new SQLUpdateClause(connection, dialect, qBean);

update.populate(bean).where(qBean.id.eq(...)).execute();

将产生SQL:

update bean set value2 = 'value2' where bean.id = ...

而不是期望的:

update bean set value = null, value2 = 'value2' where bean.id = ...

这里有什么帮助吗? ...请

最佳答案

查看querydsl源码,发现解决办法:

...
update.populate(bean, DefaultMapper.WITH_NULL_BINDINGS)
.where(qBean.id.eq(...))
.execute();
...

希望对大家有帮助

关于java - Querydsl 更新子句填充跳过 bean 空值属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349781/

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