Hibernate搜索 - 如何默认列出所有记录 [英] Hibernate Search - How to list all records by default

查看:93
本文介绍了Hibernate搜索 - 如何默认列出所有记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在我的jsp页面中有一个搜索文本框。如果我输入一些文字,它会返回正确的结果。
但是,如果我留下空信息并点击搜索按钮,它不会返回任何记录。

代码:

  Session session = HibernateUtil.getSessionFactory()。getCurrentSession(); 
session.beginTransaction();

字符串searchQuery =管理员;
String [] userFields = {firstName,lastName,role_groupName,userId};
QueryParser parser = new MultiFieldQueryParser(userFields,new StandardAnalyzer());
org.apache.lucene.search.Query luceneQuery;
尝试
{
luceneQuery = parser.parse(searchQuery);

catch(ParseException e)
{
throw new RuntimeException(Unable to parse query:+ searchQuery,e);
}

FullTextSession ftSession = Search.getFullTextSession(session);
org.hibernate.Query query = ftSession.createFullTextQuery(luceneQuery,UserVO.class);

列表结果= query.list();
System.out.println(Result size:+ results.size());


解决方案

盒子是空的。以便它返回所有记录。
现在它对我来说工作得很好。
这是我的代码。

  try 
{
if(searchText == null | | searchText.trim()。length()== 0)
{
searchText =*;
}
luceneQuery = parser.parse(searchText);

catch(ParseException e)
{
throw new RuntimeException(无法解析查询:+ searchText,e);
}


I am using Hibernate search.

I have a search text box in my jsp page. If I enter some text, it returns correct result. But if I leave empty message and click the search button, it did not return any records.

Code:

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();

String searchQuery = "Admin";
String[] userFields = {"firstName", "lastName", "role_groupName", "userId"};
QueryParser parser = new MultiFieldQueryParser(userFields, new StandardAnalyzer());
org.apache.lucene.search.Query luceneQuery;
try
{
    luceneQuery = parser.parse(searchQuery);
}
catch (ParseException e) 
{
    throw new RuntimeException("Unable to parse query: " + searchQuery, e);
}

FullTextSession ftSession = Search.getFullTextSession(session);
org.hibernate.Query query = ftSession.createFullTextQuery(luceneQuery, UserVO.class);

List results = query.list();
System.out.println("Result size:" + results.size());    

解决方案

I just put "*", if the search text box is empty. So that it returns all the records. Now it is working fine for me. This is my code.

try
{
    if(searchText == null || searchText.trim().length()==0)
    {
        searchText = "*";
    }
        luceneQuery = parser.parse(searchText);
    }
    catch (ParseException e)
    {
        throw new RuntimeException("Unable to parse query: " + searchText, e);
    }

这篇关于Hibernate搜索 - 如何默认列出所有记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆