Tôi đang tạo API nghỉ ngơi bằng Spring Boot và tôi đang sử dụng Xác thực Hibernate để xác thực các yêu cầu đầu vào.
Nhưng tôi cũng cần các loại xác nhận khác, ví dụ như khi cập nhật dữ liệu cần kiểm tra, nếu id công ty không tồn tại, tôi muốn đưa ra một ngoại lệ tùy chỉnh.
Xác nhận này nên được đặt ở lớp dịch vụ hay lớp điều khiển?
Lớp dịch vụ:
public Company update(Company entity) {
if (entity.getId() == null || repository.findOne(entity.getId()) == null) {
throw new ResourceNotFoundException("can not update un existence data with id : "
+ entity.getId());
}
return repository.saveAndFlush(entity);
}
Lớp điều khiển:
public HttpEntity<CompanyResource> update(@Valid @RequestBody Company companyRequest) {
Company company = companyService.getById(companyRequest.getId());
Precondition.checkDataFound(company,
"Can't not find data with id : " + companyRequest.getId());
// TODO : extract ignore properties to constant
BeanUtils.copyProperties(companyRequest, company, "createdBy", "createdDate",
"updatedBy", "updatedDate", "version", "markForDelete");
Company updatedCompany = companyService.update(company);
CompanyResource companyResource = companyAssembler.toResource(updatedCompany);
return new ResponseEntity<CompanyResource>(companyResource, HttpStatus.OK);
}