2013-01-31 35 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