Асинхронное обновление пользователя
Условие задачи
Код-ревью UserServiceImpl и выявить потенциальные проблемы в логике асинхронного обновления и сохранения данных.
java@Service
@RequiredArgsConstructor
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final NotificationService notificationService;
@Override
@Transactional
public void updateUser(UUID id) {
User user = userRepository.findById(id);
user.setName(RandomStringUtils.random(6));
userRepository.save(user);
notifyAboutUpdatedUser(id);
}
@Override
@Async
public void notifyAboutUpdatedUser(UUID id) {
User user = userRepository.findById(id);
NotificationInfo notificationInfo = notificationService.notify(user);
user.setNotifyInfoMessage(notificationInfo.getMessage());
userRepository.save(user);
}
}