Как написать функции MAX и OVER (PARTITION BY) в запросе JPA - PullRequest
1 голос
/ 19 марта 2019

Мне нужно получить максимальное значение одного столбца (ревизия) на основе другого столбца (DrawingNumber).Может кто-нибудь сказать мне запрос JPA для этой функции.

Я написал следующий запрос, и этот запрос не работает.

Пожалуйста, помогите мне, как написать функции MAX и OVER (PARTITION BY) в запросе JPA.

    @Query("select dr FROM
        (SELECT MAX(dr.revision) over (PARTITION BY d.drawing_number) AS latest_revision
        FROM DrawingRate dr
        JOIN dr.drawing d
        JOIN d.modifiedBy mb
        WHERE mb.Id=:Id
        OR piu.Id=:Id
        ORDER BY d.localModifiedOn DESC NULLS LAST
        ) WHERE dr.revision = :latest_revision")

Этот запрос JPA данных Spring не работает во время выполнения этой ошибки, показывая следующую ошибку:

Причина: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: неожиданный токен: (возле строки 1, столбец 16 [выберите dr from (выберите макс. (Dr.revision)) over (разбиение по d.drawing_number) AS last_enrolment_date от entity.DrawingRate dr присоединиться к dr.drawing d ПРИСОЕДИНИТЬСЯ d.modifiedBy mb оставить присоединитьсяDESC NULLS LAST) WHERE dr.revision =: latest_revision]

Пожалуйста, помогите мне, как написать функции MAX и OVER (PARTION BY) в запросе JPA.

...