首页 > 解决方案 > 自动编写 JPA 存储库类时出现空指针异常

问题描述

我正在尝试自动装配我的 jpa 存储库。但是,它被自动装配为空。我正在关注一个教程!也就是说,扩展 CrudRepository 的接口将由 spring 在运行时为我创建。当然,我可以从头开始编写所有实现的方法。不过,我想知道教程弹簧基础配置是否适合我。

我曾尝试使用 @EnableJPARepositories 注释,但它不起作用。

-- java.com.GMorgan.RateMyFriendv5
  -- Controller
    ...
  -- Entity
    ...
  -- Repository
    UserRepositroy
  -- Service
    UserService
  RateMYFreindv5Application

用户存储库

public interface UserRepository extends CrudRepository<User, UUID> {
        List<User> findByUsername(String username);
        List<User> findByEmail(String email);
}

用户服务

@Slf4j
@Service
public class UserService {
    @Autowired
    private UserRepository repository;

    public boolean login(String username, String password) {
        List<User> userList = repository.findByUsername(username);
        boolean isSuccessful = userList.get(0).isPassword(password);
        log.info("Username: {} isSucessful: {}", username, isSuccessful);
        return isSuccessful;
    }

    public boolean signUp(String email, String username, String password) {
        if (userEmailExists(email) || userUsernameExists(username)) return false;
        User user = new User();
        user.setEmail(email);
        user.setUsername(username);
        user.setPassword(password);
        user.setRole(Role.USER);
        repository.save(user);
        log.info("User email: {} username: {}", email, username);
        return true;
    }

    private boolean userEmailExists(String email) {
        return !repository.findByEmail(email).isEmpty();
    }

    private boolean userUsernameExists(String username) {
        return !repository.findByUsername(username).isEmpty();
    }
}

评价我的朋友

@EnableJpaRepositories(repositoryBaseClass = UserRepository.class)
@SpringBootApplication(scanBasePackages = {"com.GMorgan.RateMyFriendv5.Service",
        "com.GMorgan.RateMyFriendv5.Controller"})
public class RateMyFriendv5Application {

    public static void main(String[] args) {
        SpringApplication.run(RateMyFriendv5Application.class, args);
    }

}

标签: javaspringspring-bootjpanullpointerexception

解决方案


推荐阅读