今日、開発に遭遇する問題は、唯一のバックエンドに三つの値を渡し、3つの値のフロントエンドを変更し10のフィールドを、渡すとき、残りのフィールドがnullにデフォルト示すフロントページを作成、更新しますあらゆる分野の他の7つはNULL値になります。
先端の総量の前提の下で、このような問題に対処するために、後端のすべての属性を返すことができません。
解決策:1.書き込みユーティリティメソッド(UpdateUtil)は、すべてのヌルフィールド除去するために使用される
findone(によって更新ID 2によって、元のオブジェクトを検索する)ので、できる
3.は、先端がいない来た空のパラメータコピーBeanUtils.copyNullProperties(オブジェクトソース、オブジェクトのターゲット)によって覆われた元のオブジェクトの属性値(すなわち、の値を変更すること、です)
以下は、ユーティリティメソッドです。
/ ** *(ヌルフィールドに無視して)ツールを使用して更新 * / パブリック クラスUpdateUtil { / ** *すべての属性ではありませんnullのコピー * * @param ソース * @paramの対象 * / パブリック 静的な 無効copyNullProperties(ソースオブジェクト、オブジェクトターゲット){ BeanUtils.copyProperties(ソース、ターゲット、getNullField(ソース)); } / ** * GETフィールドが空である属性 * * @paramの目標 * @return * / プライベート 静的 =文字列[] getNullField(オブジェクトターゲット){ BeanWrapper beanWrapper notNullFieldSet.add(名);新しいBeanWrapperImpl(ターゲット)。 PropertyDescriptor [] propertyDescriptors = beanWrapper.getPropertyDescriptors()。 セット <文字列> notNullFieldSet = 新しい HashSetの<> (); もし(propertyDescriptors.length> 0 ){ ため(のPropertyDescriptor P:propertyDescriptors){ 文字列名 = p.getName()。 オブジェクトの値は = beanWrapper.getPropertyValue(名); もし(Objects.isNull(値)){ } } } 文字列[] notNullField= 新しい文字列[notNullFieldSet.size()]。 リターンnotNullFieldSet.toArray(notNullField)。 } }