Вместо
emailService.sendMail("SYDA", new String[]{request.getEmail()},
"SYDA: teile loodi kasutaja",
"Teile loodi SYDA süsteemi kasutaja. Teie parool on: " + generatedPassword +
"\nSisse saate logida kasutades emaili: " + request.getEmail());
return this.setWorkerData(request, user, workDetail);
запись
WorkDetail workDetailSaved = this.setWorkerData(request, user, workDetail);
emailService.sendMail("SYDA", new String[]{request.getEmail()},
"SYDA: teile loodi kasutaja",
"Teile loodi SYDA süsteemi kasutaja. Teie parool on: " + generatedPassword +
"\nSisse saate logida kasutades emaili: " + request.getEmail());
return workDetailSaved;
(как предложено Stultuske)
Кстати: я бы полностью переписал «setWorkerData (request, user, workDetail)»метод и переименуйте его в «buildWorkDetail (request, user)», который создает только экземпляр WorkDetail.Также я бы удалил часть «save» оттуда и сделал бы это после создания WorkDetail.
Пример:
public WorkDetail createWorker(PatchWorkerRequest request) {
User user = buildUser(request); // builds a new User-instance from the request
String generatedPassword = userService.generatePassword(8);
user.setPassword(passwordEncoder.encode(generatedPassword));
WorkDetail workDetail = buildWorkDetail(request, user); // builds a new WorkDetail-instance from the request
workDetail.setUser(user);
workDetailRepository.save(workDetail);
user.setWorkDetail(workDetail);
emailService.sendMail("SYDA", new String[]{request.getEmail()},
"...",
"...);
return workDetail;
}