AJAXを介してフォームからレコードを更新しています。私は私のエンティティにマップするJSONオブジェクトを持っている、と私のコントローラメソッドは次のようになります。それは、オブジェクトのことで、既存のレコードが見つからなかったSpring JSON merge
@RequestMapping(value = "/vendors", method = RequestMethod.POST)
public ResponseEntity<String> saveVendorsJson(@RequestParam String vendor) {
Vendor v = Vendor.fromJsonToVendor(vendor);
if (v.merge() == null) {
v.persist();
}
return new ResponseEntity<String>(HttpStatus.OK);
}
は、私はnullを返します(v.mergeドキュメント)から期待されます'id'フィールドをマージしてください。その場合は、新しいVendorオブジェクトとして永続化します。
私のJSONが既存のレコードと一致する「id」フィールド値を持っているにもかかわらず、ブラウザから更新された商品で新しいレコードを挿入しようとしています。
ここで私はPOSTメソッドをダブルデューティにしていますが、これは厳密にはRESTfulではありません。理論的には、これは私の方が簡単です(当然のことではありません)。
私は 'Vendor'は' .merge() 'と' .persist() 'を実装するものを拡張するカスタムクラスだと仮定しますか?あなたが言及している実装クラスと「ドキュメンテーション」は何ですか?上記のことが正確であれば、すべて正しいと思われ、うまくいくはずです。 –
ベンダーは、Spring-Rooアノテーション '@ RooEntity'によってモデル化されたPOJOです。これは' persist() 'メソッドの由来です。 –
私が作業しているドキュメントは[here](http://static.springsource.org/spring-roo/reference/html/base-json.html)で、文字列 "merge"を検索します。 –