EzJDBCでEntityのプロパティーが特定値の場合は更新対象外にする方法
テーブルを更新(update)する際に、特定値(null等)の場合は更新対象外にしたい場合があるかと思います。
その様な時、EzJDBCではexcludeValuesメソッドを利用します。
// テーブル情報インスタンスを生成 CUSTOMER _CS = new CUSTOMER(); // Entityのプロパティの値が[null],[0],[0.0D]の項目は更新対象外にする。 int count = new EzJDBC().to(_CS).excludeValues(null, 0, 0.0D).update(customer);
特定の項目を更新対象外にする場合は、「EzJDBC#exclides(...)」メソッドを利用しますが、「EzJDBC#excludeValues(...)」メソッドと組み合わせて利用する事で更新処理に幅を持たせる事が出来そうな気がしてます…(^^;)
EzJDBC#exclides(...)の利用方法は下記を参照してください。
--追記--
現在検討中なのは、変更のあったプロパティのみ更新する機能です。
下記の方法で3度程実装してみたのですが、スマートではないのでボツになりました><
1.更新前の値をEntityに保持して比較する方法...メモリ使い過ぎorz
2.値の変更はセッターを介して行い、その時に変更があったかを判別...処理の無駄orz
3.更新直前にデータを再度読み込み比較...SQLの発行が無駄orz
なんか良い方法を考えよう(^0^)/