2017-12-20 19 views
1

EclipseからSpring MVCを使用してデータベースからデータを読み取り、JSONとしてダンプするWebサービスを行っています。私は最近、例えば、データベース内のテーブルからの行を保持するために使われているクラスに新しい変数を追加した:JSON出力に反映されないクラス変数の名前を変更

public class DbRow { 
    private Integer Id; 
    private String Label; 
    ... 
    public String getLabel() { 
    return Label; 
    } 
    public void setLabel(String label) { 
    this.Label = label; 
    } 
} 

は、しかし、後のデータベースの列の名前を変更し、私は名前を変更することによって、これを反映しましたクラス変数(リファクタリングとは - >名前変更...か、Alt + EclipseでのShiftキー+ R)だけでなく、このようなそのgetterメソッドとsetterメソッド:

public class DbRow { 
    private Integer Id; 
    private String Title; 
    ... 
    public String getTitle() { 
    return Title; 
    } 
    public void setLabel(String title) { 
    this.Title = title; 
    } 
} 

そして、私の問題は今あるもののJSON出力でフィールドはまだこれのような古い名前ではまだフィールドです

{"Id":"100","Label":"Test"} 
代わりに

{"Id":"100","Title":"Test"} 

これは私がEclipseでTestNGので実行私mockMvcテストを壊すの

(例えば、エラーorg.springframework.restdocs.snippet.SnippetException:次のパスを持つフィールドがペイロードに見つかりませんでした:[タイトル]。

どうすればこの問題を解決できますか?

+1

メソッド 'setLabel(String title)'がリファクタリングされていない可能性があります。 – lzagkaretos

+0

getterとsetterの名前を変更してもよろしいですか? –

+0

実際にゲッタだった、私は例を混ぜた。 –

答えて

0

あなたのsetterメソッドはsetTitle(String title)で更新まだ

public void setLabel(String title) { this.Title = title; }

古いです。さらに、プロジェクトをクリーンビルドし、後でテストケースを実行してみてください。

+0

実際、この例ではエラーが発生しましたが、実際のコードでは名前が変更されていないゲッターであるため、これが本当の問題でした。確かに良い提案:-)ありがとう。 –

+0

ゲッターとセッターの名前をフィールドと共に自動的にリファクタリングするには、「名前を変更するゲッター」と「名前を変更する」を使用してください。 –

関連する問題