I am getting an error when I try to run my Java spring boot application . Please find below the code snippets and the error I am getting.
setAdmin() method in Controller class
@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 interface
public interface RoleRepository extends JpaRepository<Role, Long> {
Optional<Role> findByName(ERole name);
}
ERole enum
public enum ERole {
ROLE_USER,
ROLE_MODERATOR,
ROLE_ADMIN
}
The error
erreur:
Cannot invoke "com.jwt.authentification.Repository.RoleRepository.findByName(com.jwt.authentification.Domaine.ERole)" because "this.roleRepository" is null