org.hibernate.search.bridge.BridgeException: Exception while calling bridge#objectToString详解编程语言
2023-06-13 09:20:41 时间
最近在项目中使用 Hibernate Search 做搜索,想搜索实体类中一个 Date 类型的字段,但是直接 传递一个字符串,不转换成 Date 进行查询时,后台如下报错误:
org.hibernate.search.bridge.BridgeException: Exception while calling bridge#objectToString class: com.***.***.entity.MyEntity field bridge: createDate ....
DAO 查询方法如下:
public List E basicsFuzzyQuery(Object keywd, String[] fields, PageModel pageModel) throws Exception{ FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager); fullTextEntityManager.createIndexer().startAndWait(); SearchFactory searchFactory = fullTextEntityManager.getSearchFactory(); QueryBuilder queryBuilder = searchFactory.buildQueryBuilder().forEntity(entityClass).get(); org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().fuzzy().withThreshold(.8f).withPrefixLength(1).onFields(fields) .matching(keywd).createQuery(); org.apache.lucene.search.Sort sort = new Sort(SortField.FIELD_SCORE, new SortField("id", SortField.STRING)); FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(luceneQuery,entityClass); fullTextQuery.setSort(sort); if(pageModel != null) { fullTextQuery.setFirstResult(pageModel.getFirstIndex()); fullTextQuery.setMaxResults(pageModel.getPageSize()); List E list = fullTextQuery.getResultList(); return list; }
实体类中注解如下:
@Field(index = Index.YES , store = Store.NO, analyze=Analyze.NO) @DateBridge(resolution = Resolution.DAY) private Date createDate;
后台报该异常解决办法如下,红色加粗部分为修改添加的:
public List E basicsFuzzyQuery(Object keywd, String[] fields, PageModel pageModel) throws Exception{ FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager); fullTextEntityManager.createIndexer().startAndWait(); SearchFactory searchFactory = fullTextEntityManager.getSearchFactory(); QueryBuilder queryBuilder = searchFactory.buildQueryBuilder().forEntity(entityClass).get(); org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().fuzzy().withThreshold(.8f).withPrefixLength(1).onFields(fields) strong span .ignoreFieldBridge() /strong .matching(keywd).createQuery(); org.apache.lucene.search.Sort sort = new Sort(SortField.FIELD_SCORE, new SortField("id", SortField.STRING)); FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(luceneQuery,entityClass); fullTextQuery.setSort(sort); if(pageModel != null) { fullTextQuery.setFirstResult(pageModel.getFirstIndex()); fullTextQuery.setMaxResults(pageModel.getPageSize()); List E list = fullTextQuery.getResultList(); return list; }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14056.html
cjava相关文章
- Hibernate_day03讲义_使用Hibernate完成一对多的关系映射并操作详解编程语言
- 一级缓存二级缓存(hibernate)详解编程语言
- Hibernate的主键生成策略详解编程语言
- Hibernate基础的增删改查详解编程语言
- Hibernate 简单的annotation详解编程语言
- Hibernate之lazy懒加载详解编程语言
- Hibernate中session的三种状态详解编程语言
- Hibernate的缓存技术详解编程语言
- Hibernate各种主键生成策略与配置详解编程语言
- hibernate 三种状态的转换详解编程语言
- hibernate查询之后用el表达式取值时遇到的问题详解编程语言
- hibernate 执行报错:没有该表或视图详解编程语言
- 基于不同版本Hibernate的OracleXmlType处理详解编程语言
- Hibernate hibernate.use_identifer_rollback属性:重设默认值
- Hibernate管理Session和批量操作分析