1

MSSQL 2008 EclipseLink 2.3.0 JPA 2.0

我正在尝试进行 JPQL 查询以使用 MSSQL 的全文搜索功能。

正如我们所知,FUNC 上瘾的 EclipseLink 函数不起作用 [1] 因为它期望返回值,而 MSSQL freetext[2] 实际上不是一个函数,而是一些看起来像函数 [3] 的魔术谓词,我正在尝试使用[4]中提到的下一个强大的功能,SQL

我试过这个

and SQL('freetext(?, ?)', d.title, :title) 

和这个

and SQL('freetext(?, :title)', d.title) 

和 =1 结尾的组合

and SQL('freetext(?, ?)', d.title, :title) = 1

没有任何成功。它说的是

第 5 行,第 7 列:意外令牌 [(]。内部异常:NoViableAltException(83@[()* loopback of 383:9: (d= DOT right= attribute ) ])] 根本原因 NoViableAltException(83@[() 383:9 的环回:(d= DOT right= attribute )*])

其中第 5 行第 7 列在 SQL 关键字之后的第一个左括号周围。

我试图避免使用本机 SQL,因为我想利用不使用许多一对多相关类编写连接的优势。

使用 SQL 特殊功能的正确方法是什么?

[1]如何从 JPA 使用 MySQL 的全文搜索

[2] http://msdn.microsoft.com/en-us/library/ms176078(v=sql.105).aspx

[3] Hibernate + MSSQL + 通过包含全文搜索

[4] http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions#SQL

4

1 回答 1

1

EclipseLink 中的 SQL 运算符是 EclipseLink 2.4 中的新功能。为此,您需要使用 EclipseLink 2.4 里程碑或每晚构建。

如果不能使用 2.4,则可以使用本机 SQL 查询。

http://www.eclipse.org/eclipselink/downloads/milestones.php

于 2012-04-26T13:05:19.390 回答