[英]JPQL Adding Lists into HashMap, multiplying List records
程序員大家好,我想在循環中將多個列表添加到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;
}
在SQL中比較兩個數字時,請使用=
而不是LIKE
"SELECT t FROM Transaction t WHERE
MONTH(t.transactionDate) = :monthId AND t.user.id = :userId"
看起來transactionsPerMonth
在方法之外被聲明然后返回,您確定在調用該方法時它為空嗎? 最好將其聲明為局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.