首页 > 解决方案 > 无法更新有约束的数据

问题描述

我需要更新我的对象,在我有约束的对象中看起来像这样:

在此处输入图像描述

当我尝试更新数据时,它告诉我数据已经存在。(意味着我需要更改所有数据以更新它不能只更新一个属性)。

这是我的功能:

 @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);
        }

    }

任何想法 !

标签: spring-boot

解决方案


推荐阅读