【发布时间】:2016-09-22 06:35:41
【问题描述】:
我必须使用 PATCHrequest 部分更新我的资源,其正文是 JSON。下面是我的 OwnerDetails POJO。我在 Hibernate 中使用 play-framework。
public class OwnerDetailsVO {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
我在 MySQL 中为对应于这个值对象 (VO) 的实体对象创建了行。
PATCH 请求的 JSON 正文是,
PATCH /owners/123
[
{ "op": "replace", "path": "/name", "value": "new name" }
]
我已经在路由文件中配置了正确的路由到方法。
这是应处理JSON 请求的OwnerController 类。我正在使用 POSTMAN 发送请求。
public class OwnerController extends Controller {
public Result create() {
Form<OwnerDetailsVO> odVOForm = Form.form(OwnerDetailsVO.class).bindFromRequest();
if(odVOForm.hasErrors()) {
return jsonResult(badRequest(odVOForm.errorsAsJson()));
}
OwnerDetailsVO odVO = odVOForm.get();
int id = odProcessor.addOwnerDetails(odVO);
return jsonResult(ok(Json.toJson("Successfully created owner account with ID: " + id)));
}
public Result update(int id) {
//I am not sure how to capture the data here.
//I use Form to create a new VO object in the create() method
}
}
应该如何在update() 函数中捕获请求,以便我可以部分更新我的资源?我找不到好的文档来了解 PATCH Play 的操作!框架。
编辑:我已经看到有关 WSRequest 的补丁操作,但我不知道如何使用它。这会有帮助吗?
【问题讨论】:
标签: java json hibernate playframework uri