This repository was archived by the owner on Jan 13, 2023. It is now read-only.
This repository was archived by the owner on Jan 13, 2023. It is now read-only.
Вопрос по реализации addRoleToAllUsers в задании user-service #9
Open
Description
Здравствуйте.
В вашем готовом примере addRoleToAllUsers реализован так:
@Override public void addRoleToAllUsers(RoleType roleType) { List<User> users = entityManager.createQuery("select u from User u left join fetch u.roles", User.class) .getResultList(); users.stream() .filter(user -> hasNoRole(user, roleType)) .forEach(user -> user.addRole(Role.valueOf(roleType))); }
У меня возникло 2 вопроса:
-
зачем в запросе "... fetch u.roles", spring и так их вытянет или это оптимизация чтобы уменьшить лишний select из базы?
-
users.stream().filter(user -> hasNoRole(user, roleType)) .. Role на момент добавления в HashSet имеет null id и будет дубликат без этой проверки. В spring для такого случая нет готового решения, чтобы избежать дубликатов?
Спасибо.
Metadata
Metadata
Assignees
Labels
No labels