hibernate - QuerySyntaxException:意外令牌
问题描述
我在 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
解决方案
假设 man 实际上是max
,原始查询有语法错误,这就是异常的原因。后面没有逗号max(totalTickets)
,这使得查询max(totalTickets) min(maxTickets)
。根据发布的代码查看此示例,该代码显示了正确的查询
推荐阅读
- excel - 在 vb.net 中按 id 过滤时如何生成简化的 Excel
- python - Tkinter 两次打开 Filedialog 以获取文件
- laravel - Laravel 自定义登录用户名密码映射
- http - 在 warp::reply::with_status 中返回拥有的字符串
- operating-system - 区分内存泄漏和 NULL 取消引用
- javascript - 在 Safari IOS 中传播 OTP 消息无法正常工作
- python - 如何替换和保存列表中的输出
- javascript - 如何在 JavaScript 中使用来自不同字母的字母来简化单词,以便我可以正确地对它们进行排序?(例如从 Ā 到 A)
- c++ - 为什么这个 C++ 函数不输出我想要的?
- sql - Oracle SQL : Select Query : search if clob contains a string with pattern matching