簡體   English   中英

JPQL將列表添加到HashMap中,將列表記錄相乘

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM