我目前有单独的添加和编辑方法,但希望将它们合并为一个。
我认为在方法开始时应该有一个条件来确定对象是否已经存在或是否需要创建,但我是一个初学者,我真的不知道如何做到这一点
添加方法:
public PatientEntity addPatient(PatientEntity patient) throws InvalidObjectException {
checkPatient(patient);
patientRepository.save(patient);
return patient;
}
编辑方法:
public PatientEntity editPatient(int id, PatientEntity patient) throws InvalidObjectException, NoSuchElementException {
checkPatient(patient);
try {
PatientEntity patientToEdit = this.findPatientById(id);
patientToEdit.setName(patient.getName());
patientToEdit.setCountry(patient.getCountry());
patientToEdit.setGender(patient.getGender());
patientToEdit.setPhone(patient.getPhone());
patientRepository.save(patientToEdit);
return patientToEdit;
} catch (NoSuchElementException e) {
throw e;
}
}
如果您的实体内部有id,您可以检查它,如果不为空,您可以更新
public PatientEntity savePatient(PatientEntity patient) throws InvalidObjectException, NoSuchElementException {
checkPatient(patient);
if(patient.getId()==null){
patientRepository.save(patient);
return patient;
}else{
try {
PatientEntity patientToEdit = this.findPatientById(id);
patientToEdit.setName(patient.getName());
patientToEdit.setCountry(patient.getCountry());
patientToEdit.setGender(patient.getGender());
patientToEdit.setPhone(patient.getPhone());
patientRepository.save(patientToEdit);
return patientToEdit;
} catch (NoSuchElementException e) {
throw e;
}
}
}
另一个解决方案是findPatientById方法提供了一个新的实体
PatientEntity findPatientById(int id) {
if(id==null){
return new PatientEntity();
}else{
// here the previous code to search on db
}
}
然后您可以使用一个空id 使用editPatient方法