Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Querydsl update子句填充跳过bean空值属性_Java_Querydsl - Fatal编程技术网

Java Querydsl update子句填充跳过bean空值属性

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

我在使用带有bean的null值属性的populate调用时遇到了SQLUpdateCase问题。它只是从生成的更新SQL中跳过空值属性,而不是将相应的字段设置为空

例如:

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();
...
希望它能帮助别人