मैं स्प्रिंग बूट का उपयोग करके एक रेस्ट एपीआई बना रहा हूं और मैं अनुरोध निविष्टियों को मान्य करने के लिए हाइबरनेट सत्यापन का उपयोग कर रहा हूं।
लेकिन मुझे अन्य प्रकार के सत्यापन की भी आवश्यकता है, उदाहरण के लिए जब अपडेट डेटा को जांचने की आवश्यकता होती है, अगर कंपनी आईडी मौजूद नहीं है तो मैं एक कस्टम अपवाद फेंकना चाहता हूं।
क्या यह सत्यापन सेवा परत या नियंत्रक परत पर स्थित होना चाहिए?
सेवा परत:
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);
}
नियंत्रक परत:
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);
}