0

エンティティの一部のプロパティにNull値を含むPATCHリクエストを送信していますが、 't(部分的な更新)。何が起こっているのか理解しようとすると、DomainObjectMergerは@Beanとしてインスタンス化されていますが、マージメソッドは使用されませんでした(参照が見つかりませんでしたし、デバッグモードのブレークポイントは決して起動されません)。誰かがどのようにしてDomainObjectMergerを使用しているのか説明できますか?SpringデータRESTはPATCHのヌルプロパティを更新します(そうでなければならない場合)

EDIT:テストに失敗したサンプルプロジェクトを作成しました。このテストでは、ヌルをパスワードとして渡すエンティティをPATCHしようとし、パスワードが影響を受けていないことを期待しています。パスワードは予想通り

https://github.com/otinanism/demo-rest-data

答えて

2

コードが動作するデータベースになりましたヌルであるので、しかし、それは失敗します。

{"id":"bc421109-edaf-4d4f-8d4c-71b62aa4d99f","username":"alex","password":null} 

passwordフィールドの値を一掃するためにサーバーを伝えるということ:あなたのパッチのペイロードは、次のようになります。パスワードフィールドをそのままにしておきたい場合は、リクエストペイロードにもパスワードフィールドが含まれていないことを確認してください。 nullの値を表示しないようにObjectMapperを構成します。

+0

これは実際に動作します(ただし、どこに文書化されていますか?)。だから、私はDomainObjectMergerはこれに無関係だと思いますか?私はこの古いissuseのために混乱しました: https://jira.spring.io/browse/DATAREST-130 フィードバックのための多くのThanksa! – alex

+2

この動作は、基本的には[RFC7386](https://tools.ietf.org/html/rfc7386)で定義されています。 –

関連する問題