0

20 以上の検索フィールドがあり、任意の組み合わせが有効である場合、最善のアプローチは何でしょうか。openJPA またはネイティブ SQL でそれを行う特別な方法はありますか? どんなアイデアでも役に立ちます.Thanks.

4

4 に答える 4

1

ストアド プロシージャまたはパラメーター化された SQL ステートメントでこのようなことを試すことができます。このようにして、少数のフィールドのみが値を持つ場合でも、すべてのフィールドを渡すことができます。

@param1 varchar(25),
@param2 int,
@param3 varchar(10),
@param4 char(1)

SELECT column1, column2, column3, column4
FROM TABLE
WHERE (column1 = @param1 OR @param1 IS NULL)
AND (column2 = @param2 OR @param2 IS NULL)
AND (column3 = @param3 OR @param3 IS NULL)
AND (column4 = @param4 OR @param4 IS NULL)
于 2010-04-14T19:40:01.683 に答える
0

全文検索エンジンのパワーをDBモデルにもたらす「Hibernate Search」のようなものを使いたいと思うかもしれません。したがって、Google 検索のような機能を提供して、顧客が実行したい検索の組み合わせを実行できます。

さまざまな種類のクエリをテストするために、GUI を備えたデモ アプリを開発しました。

チェックアウト - http://code.google.com/p/hb-search-demo/

于 2010-04-14T19:20:09.393 に答える
0

基準 API を使用することが最善の方法だと思います。

そのリンクを読んで、あなた自身のものをチェックしてください:

http://openjpa.apache.org/builds/2.0.0-beta3/apache-openjpa-2.0.0-beta3/docs/manual/jpa_overview_criteria.html

于 2010-04-14T19:21:45.810 に答える
0

SQL で全文検索を実行するのは好きではありません。Solrなどの検索エンジンを使用するようなもの。

http://lucene.apache.org/solr/

その機能の概要:

http://lucene.apache.org/solr/features.html

于 2010-04-14T19:26:07.183 に答える