Столбец сортировки Spring Data JPA отсутствует в таблице / сущности - PullRequest
0 голосов
/ 25 июня 2018

У меня такой запрос:

    @Query(value = "SELECT new com.domain.ActivityStatistic( " +
        "adm.id, " +
        "adm.fullName, " +
        "COUNT(CASE WHEN (act.action = 'APPROVE') THEN act.action END) AS approved, " +
        "max(act.actionTime) AS lastActionTime) " +
        "FROM Actions act, Admins adm LEFT JOIN adm.group gr " +
        "WHERE adm.id = act.adminId AND act.actionTime BETWEEN ?1 AND ?2 AND gr.id = ?3 " +
        "GROUP BY adm.id")
Page<ActivityStatistic> getActivityStatistics(LocalDateTime from,
                                                              LocalDateTime to,
                                                              long groupId,
                                                              Pageable pageable);

Как мне отсортировать его по новому полю, которое я создал: lastActionTime, утверждено? Я могу запустить его родным sql в postgresql: pgadmin. Но в jpa, когда я использую сортировку с именем поля, он одобряется, он автоматически становится act.approved в запросе JPA.

Раньше я читал этот пост Spring Data и как сортировать по столбцу не в Entity , но это не помогло.

1 Ответ

0 голосов
/ 25 июня 2018

Нельзя применять в JPQL к столбцу таблицы, который не сопоставлен со свойством объекта.Причина этого в том, что JPA, включая JPQL, работает с этими объектами.

Вместо этого используйте собственный запрос.

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