AJAX를 통해 양식의 레코드를 업데이트하고 있습니다. 내 개체에 매핑되는 JSON 객체를 가지고 있고, 내 컨트롤러 방법은 다음과 같습니다는 개체의에 의해 기존 기록을 발견하지 않은 경우봄 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);
}
내가 null를 돌려줍니다 (v.merge 문서)에서 예상 'id'필드를 병합 할 수 있으며,이 경우 새 Vendor 객체로 유지하려고합니다.
내 JSON이 기존 레코드와 일치하는 'id'필드 값을 가지고 있는데도 브라우저에서 업데이트 된 상품으로 새 레코드를 삽입하고 있습니다.
나는 여기에 이중 의무를 부과하는 POST 방법을 사용하고 있음을 알고 있습니다. 엄격히 RESTful하지 않습니다. 이론적으로, 이것은 나를 위해 더 간단합니다 (물론 그것이 사실이 아님이 드러났습니다).
'Vendor'는'.merge()'와'.persist()'를 구현하는 것을 확장하는 커스텀 클래스라고 가정합니다. 당신이 언급 한 구현 클래스와 "문서"는 무엇입니까? 위의 내용이 정확하면 모든 것이 정확 해 보이며 작동해야합니다. –
Vendor는 스프링 - 루어 어노테이션 인'@ RooEntity'에 의해 모델화 된 POJO입니다. 이것은'persist()'메소드의 출처입니다. –
내가 작업하고있는 문서는 [here] (http://static.springsource.org/spring-roo/reference/html/base-json.html)에서 "merge"문자열을 검색하십시오. –