命名查询是这样的:
@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/