JPQL Добавление списков в HashMap, умножение записей списков - PullRequest
0 голосов
/ 28 февраля 2019

Здравствуйте, коллеги-программисты, я хочу добавить в HashMap несколько списков в цикле.Я не знаю, почему при увеличении числа записей до второй итерации, например, на февраль приходится 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 Ответ

0 голосов
/ 01 марта 2019

При сравнении двух чисел в sql вы используете =, а не LIKE

"SELECT t FROM Transaction t WHERE 
MONTH(t.transactionDate) = :monthId AND t.user.id = :userId"

, также похоже, что transactionsPerMonth объявляется вне метода и затем возвращается, вы уверены, что этопусто, когда метод вызывается?Вероятно, лучше объявить его как локальную переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...