You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 13, 2023. It is now read-only.
В вашем готовом примере 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 для такого случая нет готового решения, чтобы избежать дубликатов?
Спасибо.
The text was updated successfully, but these errors were encountered:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Здравствуйте.
В вашем готовом примере 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 для такого случая нет готового решения, чтобы избежать дубликатов?
Спасибо.
The text was updated successfully, but these errors were encountered: