我有以下几点 RoleRepository
:
public interface RoleRepository extends JpaRepository<Role, Long>{
}
创建新用户时,在中执行以下操作 UserServiceImpl
:
@Override
public void save(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
user.setRoles(new HashSet<>(roleRepository.findAll()));
userRepository.save(user);
}
我的数据库有两个角色,用户和管理员。这意味着在创建用户时,它同时具有两个角色。我想改变这一点,这样只有用户角色被创建,管理员可以在以后的时间点分配。
我想我可以补充一下 List<String> findByName(String name);
至 RoleRepository
和更新 user.setRoles(new HashSet<>(roleRepository.findAll()));
至 user.setRoles(new HashSet<>(roleRepository.findByName("USER")));
在 UserServiceImpl
但这不管用。这是怎么做到的?
1条答案
按热度按时间jutyujz01#
角色假定应为:
和更新
user.setRoles(new HashSet<>(roleRepository.findAll()));
至user.setRoles(new HashSet<>(roleRepository.findAllByName("USER")));
在UserServiceImpl
.