2010-04-14 178 views
0

如果我的搜索字段爲20或更多,並且任何組合都應該有效,那麼最佳方法是什麼?有沒有什麼特殊的方法可以在openJPA中實現,或者本機SQL更好。任何想法都會有幫助。謝謝。多個搜索字段

+0

您要求任何20個以上的字段進行搜索將mike很難有一個索引用於您的查詢,這將導致緩慢的搜索 – 2010-04-14 19:39:01

回答

0

我想你可能想使用像「Hibernate Search」這樣的全文搜索引擎的強大功能到DB模型。因此,您可以提供Google搜索功能,以執行您的客戶想要執行的任何搜索組合。

我開發了一個帶GUI的演示應用程序來測試各種查詢類型。

退房 - http://code.google.com/p/hb-search-demo/

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)