我正在通过 AJAX 从表单更新记录。我有一个映射到我的实体的 JSON 对象,我的控制器方法是:
@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);
}
我从文档中预计,如果 v.merge() 没有通过对象的“id”字段找到要合并的现有记录,它将返回 null,在这种情况下,我想将其作为新的 Vendor 对象持久保存。
发生的事情是,尽管我的 JSON 具有与现有记录匹配的“id”字段值,但我总是在浏览器中插入带有更新商品的新记录。
我知道我在这里使用 POST 方法拉双重职责,这不是严格的 RESTful。从理论上讲,这对我来说更简单(当然事实并非如此)。