Java Querydsl update子句填充跳过bean空值属性
我在使用带有bean的null值属性的populate调用时遇到了SQLUpdateCase问题。它只是从生成的更新SQL中跳过空值属性,而不是将相应的字段设置为空 例如:Java Querydsl update子句填充跳过bean空值属性,java,querydsl,Java,Querydsl,我在使用带有bean的null值属性的populate调用时遇到了SQLUpdateCase问题。它只是从生成的更新SQL中跳过空值属性,而不是将相应的字段设置为空 例如: public class Bean { private Long id; private String value; private String value2; ... } Bean bean = ... bean.setValue(null); bean.setValue("v
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();
...
希望它能帮助别人