使用jpql for MySql8.0的rownum伪列的解决方法

时间:2019-04-10 08:05:48

标签: mysql hibernate jpql

我的应用程序代码中的jpql以下,并且在oracle中一切正常。

@Query("select  mie from KirTable mie where mie.kirTable2.id =(?1) and rownum<=1 order by mie.id ASC")
KirTable getInquiryByCaseid(String caseId);

但是,最近我们已经迁移到mysql,现在出现如下错误。

unknown column rownum

我将rownum更改为LIMIT 1,如下所示:

@Query("select  mie from KirTable mie where mie.kirTable2.id =(?1) order by mie.id ASC LIMIT 1")
KirTable getInquiryByCaseid(String caseId);

以上查询在mysql工作台上工作正常,但在应用程序启动并出现以下错误时失败。

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: 
unexpected token: LIMIT near line 1, column 95 [select e from com.kir.entity.KirTable e where e.caseId=(?1) order by e.id ASC LIMIT 1]

如何使此查询在mysql 8.0中工作?

0 个答案:

没有答案