Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate搜索-默认情况下如何列出所有记录_Hibernate - Fatal编程技术网

Hibernate搜索-默认情况下如何列出所有记录

Hibernate搜索-默认情况下如何列出所有记录,hibernate,Hibernate,我正在使用Hibernate搜索 我的jsp页面中有一个搜索文本框。如果我输入一些文本,它将返回正确的结果。 但如果我留下一条空消息并点击搜索按钮,它不会返回任何记录 代码: Session session = HibernateUtil.getSessionFactory().getCurrentSession(); session.beginTransaction(); String searchQuery = "Admin"; String[] userFields = {"firstN

我正在使用Hibernate搜索

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

代码:

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());    
如果搜索文本框为空,则我只需输入“*”。这样它就会返回所有的记录。 现在它对我来说很好。 这是我的密码

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);
    }

AllContext org.hibernate.search.query.dsl.QueryBuilder.all()

匹配所有文档的查询(通常与布尔查询混合)

这是您需要使用的方法

下面是您的问题的示例代码

@Test
public void testSearchUsingQueryBuilder() {
    FullTextSession fullTextSession = org.hibernate.search.Search
            .getFullTextSession(sessionFactory.getCurrentSession());
    QueryBuilder builder = fullTextSession.getSearchFactory()
            .buildQueryBuilder().forEntity(Country.class).get();
    org.apache.lucene.search.Query query = builder.all().createQuery();
    FullTextQuery jpaQuery = fullTextSession.createFullTextQuery(query,
            Country.class);
    System.out.println("Before HQL =" + startDate);
    List<Country> tempCountry = jpaQuery.list();
}
@测试
public void testSearchUsingQueryBuilder(){
FullTextSession FullTextSession=org.hibernate.search.search
.getFullTextSession(sessionFactory.getCurrentSession());
QueryBuilder builder=fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity(Country.class).get();
org.apache.lucene.search.Query Query=builder.all().createQuery();
FullTextQuery jpaQuery=fullTextSession.createFullTextQuery(查询,
国家级);
System.out.println(“之前HQL=“+startDate”);
List tempCountry=jpaQuery.List();
}

您也可以绕过搜索/lucene直接进入hibernate:
List results=session.createCriteria(UserVO.class).List()