gpt4 book ai didi

Hibernate Search - 如何默认列出所有记录

转载 作者:行者123 更新时间:2023-12-02 22:33:33 26 4
gpt4 key购买 nike

我正在使用 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());

最佳答案

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

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

这是您需要使用的方法

这是解决您的问题的示例代码

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

关于Hibernate Search - 如何默认列出所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/833201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com