2013-01-31 29 views
0

我是新來的冬眠搜索,我發現困難形成Hibernateserach查詢。 我需要使用IN操作符到List中的Hibernate查詢中的字符串。 任何人都可以幫我解決這個問題。 這裏我當前的查詢這個樣子的HibernateSearch查詢

String querystring="country:"+profile.getCountry()+" AND religion:"+profile.getReligion()+" AND caste:"+profile.getCaste()+" AND gender:"+profile.getGender()+"AND profession : "+professions+" AND age:["+profile.getFromage()+" TO "+profile.getToage()+"]" ; 

是職業是字符串列表。

問候, 阿倫

回答

-1

您需要下列條款添加到您的查詢SELECT,FROM和WHERE。此外,條件是缺少的部分。例如,這是一個有效的查詢。 「SELECT e from Employee where e.country =:country and e.religion =:religion」...

+0

嗨曼努埃爾感謝您的回覆。我正在創建一個lucene查詢字符串。我需要解析這些字符串,然後在內部Lucene查詢將處理選擇,從我使用的子句HibernateSearch完整的代碼如下所示 – user2029781

+0

querystring工作正常,與下面的字符串String querystring =「country:」+ profile.getCountry )+「AND religion:」+ profile.getReligion()+「AND caste:」+ profile.getCaste()+「AND gender:」+ profile.getGender()+「AND age:[」+ profile.getFromage() +「TO」+ profile.getToage()+「]」;但是當我添加列表行業,它將無法工作謝謝阿倫 – user2029781

+0

你可能想補充說,這是用於lucene的問題。我已將lucene標籤添加到您的問題中 –

0

在Lucene查詢語言中沒有IN運算符。你將不得不自己擴展字符串。使用查詢解析器的另一種方法是使用Lucene 布爾查詢並將查詢的不同部分添加到它,例如RangeQuery等等。QueryParser有效地爲您創建了底層查詢。看看Lucene API和org.apache.lucene.search.Query的不同子類。你仍然需要自己擴展收集字符串。 最後但並非最不重要的是,您可以使用Hibernate Search查詢DSL。看看Hibernate Search的在線文檔,如果你想知道更多 - http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#search-query-querydsl