org.hibernate.search.bridge.BridgeException: Exception while calling bridge#objectToString

最近在项目中使用 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 style="color:#FF0000;">                   .ignoreFieldBridge()</span></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;
	  }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值