Как я могу вернуть дату и количество записей на эту дату, используя данные весны jpa? - PullRequest
0 голосов
/ 21 февраля 2019

Я хочу вернуть количество событий по дате. Ниже мой код

@Query(value = "select DATE(e.startTime) as day,count(distinct e.id) as eventCount from events e " +
            "where e.clientId=:clientId and e.startTime>=:firstDay and e.startTime<=:lastDay group by DATE(e.startTime)",nativeQuery = true)
    Map<Integer, Integer> getClientEventsCountByDay(@Param(value = "clientId") Integer clientId,
                                                    @Param(value = "firstDay") String firstDay,
                                                    @Param(value = "lastDay") String lastDay);

Ввод clientId = 2510, firstDay = 2019-01-01, lastDay = 2019-01-31

Этот запрос выдает ошибку ниже

Причина: org.springframework.dao.IncorrectResultSizeDataAccessException: результат возвращает более одного элемента;Вложенным исключением является javax.persistence.NonUniqueResultException: результат возвращает более одного элемента

Однако этот запрос работает нормально при запуске непосредственно на БД.enter image description here

1 Ответ

0 голосов
/ 21 февраля 2019

Попробуйте перейти на это

List<Map<Integer, Integer>> getClientEventsCountByDay(@Param(value = "clientId") Integer clientId,
                                                @Param(value = "firstDay") String firstDay,
                                                @Param(value = "lastDay") String lastDay);
...