我有这个存储库接口:
public interface ScoreCardRepository extends CrudRepository<ScoreCard, Long> {
@Query(value = "SELECT SUM(SCORE) FROM SCORE_CARD WHERE USER_ID = :userId", nativeQuery = true)
Integer getTotalScoreForUser(Long userId);
}
这个控制器:
@RestController
@RequestMapping("/gamification")
public class GamificationController {
private final LeaderBoardServiceImpl leaderBoardService;
private final GameServiceImpl gameService;
@Autowired
public GamificationController(GameServiceImpl gameService, LeaderBoardServiceImpl leaderBoardService){
this.gameService = gameService;
this.leaderBoardService = leaderBoardService;
}
@GetMapping("/retrieve-stats")
ResponseEntity<GameStats> getUserStats(@RequestParam("user") String userId){
return ResponseEntity.ok(gameService.retrieveStatsForUser(Long.parseLong(userId)));
}
}
现在,当我调用<code>/retrieve stats</code>并进入<code>gameService时。retrieveStatsForUser我得到一个空指针异常
@Service
public class GameServiceImpl implements GameService {
private final ScoreCardRepository scoreCardRepository;
private final BadgeCardRepository badgeCardRepository;
@Autowired
public GameServiceImpl(ScoreCardRepository scoreCardRepository, BadgeCardRepository badgeCardRepository) {
this.scoreCardRepository = scoreCardRepository;
this.badgeCardRepository = badgeCardRepository;
}
@Override
public GameStats retrieveStatsForUser(Long userId) {
List<BadgeCard> badgeCardList = badgeCardRepository.findByUserIdOrderByBadgeTimestampDesc(userId);
--->>> int totalScore = scoreCardRepository.getTotalScoreForUser(userId); //NULL POINTER EXCEPTION
GameStats gameStats = new GameStats(userId, totalScore,
badgeCardList.stream().map(BadgeCard::getBadge).collect(Collectors.toList()));
return gameStats;
}
}
这是否意味着scoreCardRepository
bean没有实例化?这应该发生在@AutowiredGamigrationserviceImpl
构造函数中,对吗?badgeCardRepository
很好地实例化了。发生了什么?
我建议另一个原因:
Integer getTotalScoreForUser(Long userId);
此方法可以返回整数<code>null</code>,这会在自动装箱时导致NPE在
int totalScore = scoreCardRepository.getTotalScoreForUser(userId);
我正在做一个Dagger研究项目,我是基于我在git中发现的一些其他项目来做这个项目的,我在一个课上遇到了一个问题。 该项目是关于读取和提交git存储库的,它在不使用MVP和Dagger的情况下开始工作,但我正在重构它以使用这些特性。 RepositoriesPPreseInterimpl类扩展了BasePresenter,后者又有一个BaseView类型的视图(iRespositoriesPop
一面 项目深挖 数仓分几层,每一层的作用 事实表如何设计 维度表如何设计 数据域如何划分 业务总线矩阵的概念 如何设计完整的指标 开发中和上线后数据质量如何保证 如何设计调度,依据是什么 hive数据倾斜解决办法 hivesql常见优化手段 什么是spark宽窄依赖,起到什么作用 sql题:用户连续登录游戏的最大天数,允许间隔一天 反问 做什么业务 教培业务中的线下面授分析 网络问题迟到了一会,面
本文向大家介绍Docker 私有仓库恢复实例详解,包括了Docker 私有仓库恢复实例详解的使用技巧和注意事项,需要的朋友参考一下 Docker 私有仓库恢复 之前openstack平台由于停电等影响,导致之前制作的registry 私有仓库的主机挂掉,还好数据挂载在nfs中,然后现在尝试重新启动恢复。 虚机安装nfs服务 apt-get install -y nfs-common 编辑 /etc
在此任务中,我不允许使用自动布线
Repository,仓库,简称 Repo。为项目添加一个 Git 仓库以后,你就可以用 Git 为项目做版本控制了。 git init 上面的命令可以为项目初始化一个仓库,这个动作只需要执行一次,它会在项目下面创建一个 .git 目录,Git 会把它需要的东西存储在这个 .git 目录里面,它其实就是项目的仓库。 练习 1,创建一个项目。打开你的命令行界面,执行: cd ~/desktop m
仓库(Repository),这里指的是可以使用包管理工具安装的软件包的列表。系统自带一些仓库,如果你发现要安装的包在这些仓库里不存在,你可能需要在系统上安装额外的仓库。 仓库列表 先查看一下安装在系统上的仓库列表,执行: yum repolist 返回类似的东西: repo id repo name