Junior — Senior
Asynchronous user data modification
livecode
Task condition
Conduct a review of the UserServiceImpl class, identifying potential issues in the implementation of asynchronous updates and subsequent user data saving.
@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);
}
}