我需要使用hibernate搜索只选择几列。以下是运行良好的代码
FullTextSession fts = org.hibernate.search.Search.getFullTextSession(getSession());
org.apache.lucene.search.BooleanQuery query = prepareQuery(dto);
fullTextQuery = fts.createFullTextQuery(query, ProfileBean.class);
fullTextQuery.setFirstResult(dto.getProfileBean().getResultStartIndex());
fullTextQuery.setMaxResults(dto.getProfileBean().getResultsLimit());
List<ProfileBean> profiles = fullTextQuery.list();
在上面的例子中,我只想选择'firstName'和'lastName'列。
以下代码抛出异常
List<String> projectedFields = new ArrayList<String>();
projectedFields.add("firstName");
projectedFields.add("lastName");
org.hibernate.search.SearchException: Projecting an unstored field: firstName
实际上我不想在lucene中存储firstName字段任何其他的建议。?
答案 0 :(得分:0)
在您的类ProfileBean中,您需要添加注释:
@Field(store=Store.YES)
到字段firstname
,lastname
请参阅第5.1.2.5节。有关详细信息,请参阅Hibernate文档中的投影: https://docs.jboss.org/hibernate/search/3.2/reference/en/html/search-query.html#d0e3643
快乐的编码!