zl程序教程

您现在的位置是:首页 >  后端

当前栏目

org.hibernate.search.bridge.BridgeException: Exception while calling bridge#objectToString详解编程语言

hibernate编程语言 详解 while Exception org search Bridge
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