[英]how can add only one data?
@PutMapping("/api/cricketer/{id}")
public ResponseEntity<Cricketer> updateCricketer(@PathVariable("id") Long id, @RequestBody Cricketer cricketer) {
Cricketer cCricketer = cricketerService.findById(id);
cCricketer.setCountry(cricketer.getCountry());
cCricketer.setName(cricketer.getName());
cCricketer.setHighestScore(cricketer.getHighestScore());
cricketerRepository.save(cCricketer);
return new ResponseEntity<Cricketer>(cricketer, HttpStatus.OK);
}
Hello everyone. 大家好。 When I try to update a data on updateCricketer method, it updates the data as I entered. 当我尝试更新updateCricketer方法上的数据时,它将按我输入的内容更新数据。 But other datas turn as null. 但是其他数据变为空。 Does anyone know how can I solve that problem? 有谁知道我该如何解决这个问题?
Do a null check before setting values. 在设置值之前进行空检查。
@PutMapping("/api/cricketer/{id}")
public ResponseEntity<?> updateCricketer(@PathVariable("id") Long id, @RequestBody Cricketer cricketer) {
Cricketer cCricketer = cricketerService.findById(id);
if(Objects.nonNull(cCricketer)) {
cCricketer.setCountry(Objects.isNull(cricketer.getCountry()) ? cCricketer.getCountry() : cricketer.getCountry());
cCricketer.setName(Objects.isNull(cricketer.getName()) ? cCricketer.getName() : cricketer.getName());
cCricketer.setHighestScore(Objects.isNull(cricketer.getHighestScore()) ? cCricketer.getHighestScore() : cricketer.getHighestScore());
// Do same to the rest of the fields
cricketerRepository.save(cCricketer);
return new ResponseEntity<>(cricketer, HttpStatus.OK);
} else {
return new ResponseEntity<>("No cricketer Found!", HttpStatus.OK);
}
}
Another solution for this is to use data transfer objects and an object mapper which will take care of the null check depending on the strategy that you decide. 对此的另一种解决方案是使用数据传输对象和对象映射器,这些映射器将根据您决定的策略执行空检查。
http://mapstruct.org/documentation/stable/reference/html/#mapping-result-for-null-arguments http://mapstruct.org/documentation/stable/reference/html/#mapping-result-for-null-arguments
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.