2013-11-04 54 views
1

我正在重寫一個Hibernate/lucene函數,findRangeSorting(),它根據權限過濾器檢索表中的所有記錄。現在,這是通過將HQL(hibernate sql)字符串拼接在一起並使用它來查詢數據庫來完成的(非常糟糕)。Hibernate FullTextQuery,沒有搜索詞?

我也有一個搜索功能,它使用更好的編程方法,通過爲使用hibernate註釋的類創建過濾器,並將布爾查詢組合到全文查詢中,然後根據哪個用戶正在進行添加過濾器搜索。 (請注意,是不是整個函數)

fullTextQuery = fullTextSession.createFullTextQuery(bq, this.type); results = tab.getQueryFiltersForSearch(fullTextQuery).setSort(sort).list();

我想,因爲過濾器都已經到位使用此功能爲findRangeSorting()功能,所以我基本上只需要有搜索返回一切。缺點是搜索「」和*沒有完成此操作,所以我需要基本上創建一個不需要搜索實際術語或可能的找到一個替代方法來從中檢索一系列行一張帶有基於用戶權限的過濾器的表格

我對hibernate沒有最好的把握,所以我可能在我的假設中完全錯誤。任何幫助表示讚賞。

回答

2

要創建查詢匹配所有文檔,您應該只能使用Lucene的MatchAllDocsQuery。我不知道在創建一個MatchAllDocsQuery休眠QueryBuilder任何東西,但它足夠簡單,直接創建一個通過Lucene的API,是這樣的:

​​