如何在JPA查询中编写MAX和OVER(PARTITION BY)函数

时间:2019-03-19 13:28:04

标签: jpa spring-data-jpa window-functions

我需要根据另一列(drawingNumber)获得一个列(修订)最大值。谁能告诉我有关此功能的JPA查询。

我编写了以下查询,但该查询无法正常工作。

请帮助我如何在JPA查询中编写MAX和OVER(PARTITION BY)函数。

    @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")

在运行此Spring数据JPA查询时,它显示以下错误:

  

由于:java.lang.IllegalArgumentException:   org.hibernate.hql.internal.ast.QuerySyntaxException:意外   令牌:(靠近第1行第16列[select dr from(select   max(dr.revision)超过(按d.drawing_number分区)AS   来自entity.DrawingRate的last_enrolment_date dr加入dr.drawing d加入   d.modifiedBy mb左加入博士dr.modifiedBy在哪mb.Id =:IdOR   piu.Id =:id顺序由d.localModifiedOn在DESC NULLS LAST)哪里   dr.revision =:latest_revision]

请帮助我如何在JPA查询中编写MAX和OVER(PARTION BY)函数。

0 个答案:

没有答案