Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Асинхронное изменение данных пользователя
Компании, где спрашивали:
Brainway LTD
Условие задачи
Провести ревью класса UserServiceImpl, выявив возможные проблемы в реализации асинхронного обновления и последующего сохранения данных о пользователе.
@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);
}
}