无法调用,因为"this.roleRepository"为空



当我尝试运行Java spring启动应用程序时,我得到了一个错误。请找到下面的代码片段和我得到的错误。

setAdmin()方法在控制器类

@PutMapping("/update/{id}")
//@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<User> setAdmin(@PathVariable("id") Long id, @RequestBody User user) {
Optional<User> userData = userRepository.findById(id);
Optional<Role> adminRole = roleRepository.findByName(ERole.ROLE_ADMIN);
Set<Role> roles = new HashSet<>();
roles.add(adminRole.get());
if (userData.isPresent()) {
User _user = userData.get();
_user.setRoles(roles);
return new ResponseEntity<>(userRepository.save(_user), HttpStatus.OK);
} else {
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}

RoleRepository接口
public interface RoleRepository extends JpaRepository<Role, Long> {
Optional<Role> findByName(ERole name);
}

ERole enum

public enum ERole {
ROLE_USER,
ROLE_MODERATOR,
ROLE_ADMIN
}

的错误
erreur:
Cannot invoke "com.jwt.authentification.Repository.RoleRepository.findByName(com.jwt.authentification.Domaine.ERole)" because "this.roleRepository" is null

很可能您必须使用@Autowired注释实例化存储库。

最新更新