【发布时间】:2020-03-15 15:52:39
【问题描述】:
以下是我只更改一个数据的方法
@RequestMapping(value = "/updateroomstatus", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public Response<SaveResponse> updateRoomStatus(@RequestBody Request<RoomDetail> request, HttpServletRequest httpServletRequest) throws ParseException, JsonProcessingException {
Response<SaveResponse> rvalue = new Response<>();
Status status = new Status();
String user = request.getSession().getUserId();
log.info("Headers : " + HttpUtil.getHeadersInfo(httpServletRequest).toString());
log.info("Incoming request from " + httpServletRequest.getRemoteAddr() + ":" + httpServletRequest.getRemotePort() + "\n"
+ " Method : " + httpServletRequest.getMethod() + "\n"
+ " TLS : " + httpServletRequest.isSecure() + "\n"
+ " Path : " + httpServletRequest.getRequestURI() + "\n"
+ " Body : " + mapper.writeValueAsString(request));
RoomDetail updatedData = request.getPayload();
Optional<RoomDetail> getData = roomDetailRepository.findById(updatedData.getId());
if(getData.isPresent()) {
RoomDetail oldData = getData.get();
//just one data can update
oldData.setStatus(updatedData.getStatus());
oldData.setDescription(updatedData.getDescription());
roomDetailRepository.saveAndFlush(oldData);
status.setStatusCode("000");
status.setStatusDesc("Success");
} else {
status.setStatusCode("001");
status.setStatusDesc("Data Not Found");
}
log.info("Resp : " + status.toString());
rvalue.setStatus(status);
return rvalue;
}
使用 Postman 发出请求时,会是这样。这很好用
{
"id": 91,
"description": "normal",
"status": "Occupied"
}
我想要做的是批量更新,这会改变很多数据。它看起来像这样
[
{
"id": 91,
"description": "Very Good",
"status": "Occupied"
},
{
"id": 93,
"description": "Normal",
"status": "Vacant Dirty"
},
{
"id": 98,
"description": "Not bad",
"status": "Occupie Dirty"
}
]
我得到的信息是通过添加数组和循环进行批量更新。谁能帮忙?
【问题讨论】:
标签: java spring spring-boot spring-mvc spring-data-jpa