Java JPA查询结果为空
嗨,我有以下代码: 控制器:Java JPA查询结果为空,java,spring-boot,jpa,Java,Spring Boot,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); } @GetMapping(“/salesTrend”) 私有列表salesTrend(){ int[]利
@GetMapping("/salesTrend")
private List<Object[]> salesTrend(){
int[] profit = {1,2,3,4,5,6,7,8,9,10,11,12};
return customerRepository.findByProfit(profit);
}
@GetMapping(“/salesTrend”)
私有列表salesTrend(){
int[]利润={1,2,3,4,5,6,7,8,9,10,11,12};
返回customerRepository.findByProfit(利润);
}
存储库:
@Query(
value = "SELECT MONTH(f_date), SUM(profit) as p from finance where MONTH(f_date) = ?1",
nativeQuery = true)
List<Object[]> findByProfit(int[] profit);
@Query(
value=“从财务中选择月份(f_日期),总和(利润)作为p,其中月份(f_日期)=?1”,
nativeQuery=true)
列出findByProfit(int[]利润);
这个结果是空的,我很难知道为什么会这样,因为我已经在xampp上测试过了,效果很好。我不知道我做错了什么。谢谢你。我已经解决了这个问题。多亏@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);
}
}
int[]利润={1,2,3,4,5,6,7,8,9,10,11,12,13};
List profitList=new ArrayList();
for(int i=1;i
您是否收到任何错误?尝试打印执行的查询并检查它们是否正常:嘿,您是否希望返回每个月的利润总额?我怀疑JPA会自动运行您的查询12次,即。对于每个数组项。相反,我认为DB收到where表达式检查ifMONTH(f_date)=={1,2,3,4,…12}
,这从来都不是真的。要进行测试,请将方法签名更改为接受单个整数参数,并在运行customerRepository.findByProfit(1)时检查它返回的内容
@Vikram Singh Shekhawat不,我没有收到任何error@ppeterka是的,这正是我想要做的我尝试了你的建议并输入了12作为一个参数,它做了我想要它做的事情,但我需要它来产生每个月的利润之和可能有一个解决方案在一个查询中完成它会在询问。@ppeterka我会试试的谢谢