首页 > 解决方案 > JPA 查询结果为空

问题描述

嗨,我有以下代码:

控制器:

@GetMapping("/salesTrend")
private List<Object[]> salesTrend(){
    int[] profit = {1,2,3,4,5,6,7,8,9,10,11,12};
    return customerRepository.findByProfit(profit);
}

存储库:

@Query(
    value = "SELECT MONTH(f_date), SUM(profit) as p from finance where MONTH(f_date) = ?1",
    nativeQuery = true)
List<Object[]> findByProfit(int[] profit);

结果是空的,我很难知道为什么会这样,因为我已经在 xampp 上测试过它并且它工作正常我不知道我做错了什么谢谢

标签: javaspring-bootjpa

解决方案


由于@ppeterka 的评论,我已经解决了它我刚刚创建了一个包含所有月份的数组,然后我循环数组中的每个元素,一次将它们放在查询中

    int[] profit = {1,2,3,4,5,6,7,8,9,10,11,12,13};
    List<Object> profitList = new ArrayList<>();
    
    for(int i = 1; i < profit.length; i++) {
        List<Object[]> results = customerRepository.findByProfit(i);
        for(Object[] obj : results) {
            Map<Object, Object> profits = new LinkedHashMap<>();
            profits.put("Month", obj[0]);
            profits.put("Profit", obj[1]);
            
            profitList.add(profits);
        }
    }

推荐阅读