Hibernate QuerySyntaxException:意外标记

Hibernate QuerySyntaxException:意外标记,hibernate,spring-boot,jpa,spring-data-jpa,spring-data,Hibernate,Spring Boot,Jpa,Spring Data Jpa,Spring Data,我已经在JPA存储库中定义了这个查询 @org.springframework.data.jpa.repository.Query("select min(cur.volumeUsd24h), max(cur.volumeUsd24h), " + "min(marketCapUsd), man(marketCapUsd), " + "min(availableTickets), man(availableTickets), "

我已经在JPA存储库中定义了这个查询

  @org.springframework.data.jpa.repository.Query("select min(cur.volumeUsd24h), max(cur.volumeUsd24h), "
        + "min(marketCapUsd),       man(marketCapUsd), "
        + "min(availableTickets),   man(availableTickets), "
        + "min(totalTickets),       man(totalTickets)  "
        + "min(maxTickets),             man(maxTickets)  "
        + "from Tickets cur  ")
  Object[] findQueryFiltersValues ();
但当我启动应用程序时,我遇到了以下错误:

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: min near line 1, column 211 [select min(cur.volumeUsd24h), max(
我也试过了

@Query(value = "select min(cur.volume_usd_24h), max(cur.volume_usd_24h), "
        + "min(market_cap_usd),       max(market_cap_usd), "
        + "min(available_tickets),   max(available_tickets), "
        + "min(total_tickets),       max(total_tickets)  "
        + "min(max_tickets),             max(max_tickets)  "
        + "from tickets cur  ",nativeQuery = true)
但我有一个编译错误:

Multiple markers at this line
    - Syntax error on token ",", [ expected
    - Syntax error, insert "]" to complete 
     Expression

JPA存储库不支持最小、最大函数

您应该将查询更改为本机sql(将POJO字段替换为DB列名)

并添加nativeQuery=true属性

像这样的

@Query(value = "select min(cur.volume_usd_24h), max(cur.volume_usd_24h), "
        + "min(market_cap_usd),       max(market_cap_usd), "
        + "min(available_tickets),   max(available_tickets), "
        + "min(total_tickets),       max(total_tickets)  "
        + "min(max_tickets),             max(max_tickets)  "
        + "from tickets cur  ",nativeQuery = true)

假设man实际上是
max
,则原始查询存在语法错误,这就是异常的原因。
max(totalTickets)
之后没有逗号,这使得查询
max(totalTickets)min(maxTickets)
。请参阅基于显示已更正查询的已发布代码的动作

JPQL聚合函数,包括
MIN/MAX
。假设
man
实际上是
MAX
,则原始查询存在语法错误,这就是异常的原因。
max(totalTickets)
之后没有逗号,这使得查询
max(totalTickets)min(maxTickets)
。请参阅根据显示正确查询的已发布代码。@manish,请转换为答案