#502 Code Review of User Updates

Companies:
WebTech
Themes:
SpringTransactionsCode Review

Perform a code review:

public class UserUpdater {
    @Autowired
    private CompanyRepository companyRepository;

    @Autowired
    private UserRepository userRepository;

    @Autowired
    private RemoteUserInfoProvider remoteUserInfoProvider;

    private Logger logger = Logger.getLogger(UserUpdater.class.getName());

    public void fillUsersData() {
        try {
            companyRepository.findAll().forEach(company ->
                    updateUsersData(company.getUsers())
            );
        } catch (Exception e) {
            logger.error("Error");
        }

    }

    @Transactional
    private void updateUsersData(
            List<User> users
    ) {
        // tx.begin
        userRepository.lockUsers(users);
        users.parallelStream().forEach(user -> {
                    UserInfo userInfo = remoteUserInfoProvider.getUserInfo(user.getId());
                    user.updateData(userRepository); // update user fields
                    userRepository.save(user);
                }
        );
    }
}

Question review

Mentor
Answer as you would in a real interview. I’ll ask follow-up questions, then compare your answer with the reference answer and show your accuracy as a %.
Sign in to start the dialogue The mentor keeps the context of the current question and your previous messages.
Sign in