java—使用jparepository创建只有一个角色的用户

i7uaboj4  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(302)

我有以下几点 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 但这不管用。这是怎么做到的?

jutyujz0

jutyujz01#

角色假定应为:

public interface RoleRepository extends JpaRepository<Role, Long>{
    List<Role> findAllByName(String name);
}

和更新 user.setRoles(new HashSet<>(roleRepository.findAll()));user.setRoles(new HashSet<>(roleRepository.findAllByName("USER")));UserServiceImpl .

相关问题