3

Beanのnull値プロパティでpopulate呼び出しを使用すると、SQLUpdateClauseに問題があります。対応するフィールドをNULLに設定する代わりに、生成された更新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 = ...

ここで何か助けはありますか?... お願いします

4

1 に答える 1

7

querydslソースコードをチェックすると、解決策が見つかりました。

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

それが誰かを助けることを願っています

于 2012-09-10T11:02:50.577 に答える