Как получить сумму записей в ключе, значение моды, используя nativeQuery в CrudRepository?
Я получаю массив-список в качестве типа возврата с 0-й индекс в качестве массива. Что я хочу, так это разделение пары ключ-значение, где имя столбца - это ключ, а его значение - соответствующая сумма, которую я получил.
@Query(value = "
SELECT SUM(revenue_amount) AS revenue_amount
, SUM(service_charge_amount) AS service_charge_amount
FROM event_stats
WHERE event_id = :event_id
", nativeQuery = true)
public ? findTicketTotalForAnEvent(@Param("event_id") String event_id);
Какой должен быть тип возврата? И как его отфильтровать дальше?
1 ответ
Если вы открыты для использования проекций, то, что показано ниже, даст желаемый результат.
Объявите статический интерфейс, как показано ниже:
static interface TotalTicketsForEvent {
public Long getRevenueAmount();
public Long getServiceChargeAmount();
}
Теперь ваш запрос должен быть:
@Query(value="SELECT SUM(revenue_amount) AS revenueAmount, SUM(service_charge_amount) AS serviceChargeAmount FROM event_stats WHERE event_id = :event_id", nativeQuery = true)
public List<TotalTicketsForEvent> findTicketTotalForAnEvent(@Param("event_id") String event_id);
Вы можете использовать методы интерфейса для дальнейшей обработки списка.