Как получить список результатов count (), используя JpaRepository @Query? - PullRequest
0 голосов
/ 04 июня 2019

Я создаю REST API, подключенный к базе данных ORACLE 11G. API отправляет данные клиенту Android с помощью JSON. Для получения данных я использую JpaRepository и @Query аннотации.

Я хочу предоставить данные для графиков: количество контрактов в годах.

У меня собственный запрос SQL:

select aa.ROK, count(aa.NUMER_UMOWY) 
from (select distinct NUMER_UMOWY, ROK from AGR_EFEKTY) aa 
group by aa.ROK order by aa.ROK

Результат запроса с использованием SQL Developer выглядит следующим образом:

Я пытался получить результат, используя собственный запрос:

Но результат всегда такой:

или ошибка в зависимости от того, что я пытаюсь.

Можно ли получить список count() результатов, используя @Query?

Если нет, что мне использовать?

Заранее спасибо: -)

1 Ответ

0 голосов
/ 04 июня 2019

Я думаю, что вы пытаетесь использовать здесь прогнозирование данных весны. Как упомянуто в справочном документе:

Методы запроса Spring Data обычно возвращают один или несколько экземпляров Совокупный корень, управляемый хранилищем. Тем не менее, это может иногда желательно создавать прогнозы на основе определенных атрибуты этих типов. Spring Data позволяет моделировать выделенный возвращаемые типы, чтобы более избирательно получать частичные представления управляемые агрегаты.

и особенно закрытая проекция, где все методы доступа соответствуют целевым атрибутам. В вашем случае количество не является атрибутом вашей совокупности. Чтобы выполнить то, что вы хотите, вы можете использовать конструктор следующим образом:

class ContractsDto{


  private String rok;
  private int count;

  public ContractsDto(String rok, int count) {
    this.rok=rok;
    this.count =count;
  }
  // getters
}

Запрос будет:

@Query(value = "select new ContractsDto(aa.rok , /*count */) from fromClause")
 List<ContractsDto> getContractsPerYear();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...