2012-04-26 7 views
1

MSSQL 2008 のEclipseLink 2.3.0 JPA 2.0MS SQL Serverのフルテキスト検索JPAおよびEclipseLinkのと

私は、MSSQLの全文検索機能を使用するJPQLクエリを作成しようとしています。

MSSQL freetext [2]は実際には関数ではなく、関数[3]のようなマジック述語ではありますが、FUNC中毒のEclipseLink関数は戻り値を期待しているので、[1]

SQLは、私はこの

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

この

and SQL('freetext(?, :title)', d.title) 
を試してみました、[4]に記載された次の強力な機能を使用しようとしています任意の成功を伴わずに
and SQL('freetext(?, ?)', d.title, :title) = 1 

の組み合わせを使用することができます。それは言う

行5、列7のようなもの:予期しないトークン[(] 内部例外:@ NoViableAltException(83 [()* 383のループバック:9:(D = DOT右=属性)])]根本的な原因で NoViableAltException(83 @ [383の()ループバック:9:(D = DOT右=属性)*])

ライン5は、列7は、SQLキーワードの後の最初の括弧の周りです。

多くの1対多の関連クラスを持つ結合を記述しないという利点を利用したいので、ネイティブSQLを回避しようとしています。

SQL特殊関数を使用する正しい方法は何ですか?

[1] How to use MySQL's full text search from JPA

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

[3] Hibernate + MSSQL + Fulltext Search via Contains

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

答えて

1

のEclipseLinkにおけるSQLオペレータはEclipseLinkは2.4で新しく追加されました。このためにEclipseLink 2.4マイルストーンまたは夜間ビルドを使用する必要があります。

2.4を使用できない場合は、ネイティブSQLクエリを使用できます。

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