mysql - JPA 在使用 MySQL MATCH 函数执行命名查询时出错

标签 mysql jpa

命名查询是这样的:

@NamedQuery(name = "Table.findFTS", query = "SELECT t FROM table t WHERE MATCH(t.field1, t.field2) AGAINST (':text' IN BOOLEAN MODE)")

和错误:

异常:异常 [EclipseLink-8025](Eclipse 持久性服务 - 2.2.0.v20110202-r8913):org.eclipse.persistence.exceptions.JPQLException 异常描述:语法错误解析查询 [Businesses.findFTS: SELECT t FROM table t WHERE MATCH(t.field1, t.field2) AGAINST (':text' IN BOOLEAN MODE)], line 1, column 38: unexpected token [(]。内部异常:NoViableAltException(83@[()) * 383:9 环回: (d= DOT right= attribute )*])

我不知道为什么会得到这个,但似乎 MATCH 函数让它很头疼

最佳答案

如果您在 JPQL 中执行查询,请记住您使用的不是 SQL,而是 JPQL。据我所知,JPQL 中没有“匹配”功能。但是,您可能对 NamedNativeQuery 感兴趣。

关于mysql - JPA 在使用 MySQL MATCH 函数执行命名查询时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896195/

相关文章:

jpa - 带输入参数的命名查询

php - 如何在 URL 中放置 MySQL 行数据?

mysql - ORDER BY 的方向阻止 MySQL 使用索引

mysql - 在unix中安装mysql服务器连接超时

java - Spring Hibernate 在测试中保存实体不持久

java - 为什么我的集合初始化不起作用?

php - php中不区分大小写的查询

mysql - 在 Ubuntu 18.04 上安装 MySQL 8.0 时遇到问题

java - 具有 JPA 实体的 RESTful 客户端

java - JPA 不急于加载所有内容