我想知道如何将以下两个查询连接在一起。
标准条件查询
Criteria result1 = session.createCriteria(Store.class).add(Restrictions.eq("department.name", category));
和全文搜索
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Store.class).get();
Query luceneQuery = queryBuilder.keyword().onFields("productTitle").matching(keyword).createQuery();
// wrap Lucene query in a javax.persistence.Query
org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery, Store.class);
fullTextQuery.setMaxResults(15);
fullTextQuery.setFirstResult(0);
我通过URL加关键字参数传入额外的参数,我不想完全依赖关键字搜索。有人知道如何使这些一起工作吗?
谢谢。
最佳答案
Hibernate Search 文档实际上不鼓励将 Criteria
查询与全文搜索查询结合使用(指定获取类型除外)。
Only fetch mode can be adjusted, refrain from applying any other restriction. While it is known to work as of Hibernate Search 4, using restriction (ie a where clause) on your Criteria query should be avoided when possible. getResultSize() will throw a SearchException if used in conjunction with a Criteria with restriction.
另请参阅http://docs.jboss.org/hibernate/search/4.4/reference/en-US/html_single/index.html#d0e5722
关于hibernate - 使用条件查询限制加入 hibernate 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309464/