2017-08-23 8 views
0

私はEntityクラスにプライベートフィールドnameを持っています:は、名前を変更できないビジネスロジックのためsetName()メソッドがありません。Spring MVC - エンティティのプライベートフィールドがPOSTから設定されていません

私は、フォームのエンドポイントがあります。

@RequestMapping(value = "/endpoint", method = POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
    public Product saveProduct(
      @Validated(FormSubmission.class) Product product, 
      Errors errors, 
      @RequestParam("sellerId") long sellerId) { ... } 

私は春がリクエストボディを解析するときにもプライベートフィールドを移入することができましたが、nameプロパティが正しくフォーマットされたPOSTリクエストの後にnullのままという印象の下にあったがsetName()メソッドをProductに追加しない限り

セッターが必要ですか?

答えて

0

The private modifier specifies that the member can only be accessed in its own class

外部にいる場合は、読み書きできません。

+0

春は、リフレクションを使用して、オブジェクトをデシリアライズするためにジャクソンを使用しているだけで罰金 – user3690467

+0

春の豆とプライベートフィールドをautowireすることができ、私は(真)setAccessibleがデフォルトで使用されているかはわかりません。あなたのプロパティが設定なしでnullの場合、値を変更するためにアクセスすることはできません。 – NikNik

+0

JacksonがJSONに使用されていませんか? – user3690467

関連する問題