java JPQL将列表添加到HashMap中,并将列表记录相乘
各位程序员好,我想在HashMap中添加循环中的多个列表。我不知道为什么当它到达第二次迭代时,记录会成倍增加,例如,2月份有10条记录(monthId=2),而在整个循环之后,有40条记录被注入。代码如下:
public HashMap<String,List<Transaction>> convertTransactionsPerMonth(int
userId){
for(int monthId = 1; monthId < 13; monthId++){
ArrayList<Transaction> transactionsFromDatabase = new ArrayList<>
(entityManager
.createQuery("SELECT t FROM Transaction t WHERE
MONTH(t.transactionDate) LIKE :monthId AND t.user.id = :userId",
Transaction.class)
.setParameter("monthId", monthId)
.setParameter("userId", userId)
.getResultList());
transactionsPerMonth.put(Months.getById(monthId),
transactionsFromDatabase);
}
return transactionsPerMonth;
}
# 1 楼答案
在sql中比较两个数字时,使用
=
而不是LIKE
另外,它看起来像是在方法之外声明了
transactionsPerMonth
,然后返回,您确定在调用方法时它是空的吗?最好将其声明为局部变量