spring-boot - 无法更新有约束的数据
问题描述
我需要更新我的对象,在我有约束的对象中看起来像这样:
当我尝试更新数据时,它告诉我数据已经存在。(意味着我需要更改所有数据以更新它不能只更新一个属性)。
这是我的功能:
@PutMapping ( value = "/UpdateHospital/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> UpdateHospital( @PathVariable("id") Long id,
@Valid @RequestBody Hospital hospitalDetails ){
logger.info("Updated hospital from hospital table...Call UpdateHospital() ");
Optional<Hospital> hospitalData = hospitalRepository.findById(id);
if (hospitalData.isPresent()) {
Hospital hospital = hospitalData.get();
hospital.setName(hospitalDetails.getName());
hospital.setAdministrativeAddress(hospitalDetails.getAdministrativeAddress());
hospital.setSiretNumber(hospitalDetails.getSiretNumber());
hospital.setFinessNumber(hospitalDetails.getFinessNumber());
if (hospitalService.existsByName(hospital.getName())) {
return ResponseEntity
.badRequest()
.body(new MessageResponse("Error: name is already taken!"));
}
if (hospitalService.existsByAdministrativeAddress(hospital.getAdministrativeAddress())) {
return ResponseEntity
.badRequest()
.body(new MessageResponse("Error: administrative_address is already in use!"));
}
if (hospitalService.existsByFinessNumber(hospital.getFinessNumber())) {
return ResponseEntity
.badRequest()
.body(new MessageResponse("Error: finess_number is already taken!"));
}
if (hospitalService.existsBySiretNumber(hospital.getSiretNumber())) {
return ResponseEntity
.badRequest()
.body(new MessageResponse("Error: siret_number is already in use!"));
}
return new ResponseEntity<>(hospitalService.save(hospital), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
任何想法 !
解决方案
推荐阅读
- docker - 为什么我的容器没有使用我主机的可用 RAM?
- powershell - 如何在 Anaconda Powershell 控制台中更改文本颜色?
- c - 这个语法正确吗?
- elasticsearch - Elasticsearch 通过聚合对数据进行重组和排序
- powershell - 在一组用户中搜索专有名称
- angular-http-interceptors - 在 Angular 6+ HttpInterceptor 中更改对错误的成功响应
- powershell - 验证本地机器证书
- hibernate - 一对一单向添加唯一约束
- sql - 如何从 URL 中提取某些级别的网址?
- c# - 我如何在这个例子中添加一个静态 Main() 方法?