使用全文搜索时,无法将org.hibernate.impl.SessionImpl强制转换为org.hibernate.engine.spi.SessionImplementor

时间:2015-02-26 07:34:26

标签: hibernate-search fuzzy-search

我正在使用hibernate-search-4.5.2.Final来实现全文搜索但是使用以下消息获取异常

  

org.hibernate.impl.SessionImpl无法强制转换为org.hibernate.engine.spi.SessionImplementor

在以下一行

FullTextSession fullTextSession = Search.getFullTextSession(sessionImpl.getFactory().openSession());

这是我的代码:

    @Autowired  
private SessionFactory sessionFactory;
@SuppressWarnings("rawtypes")
@Override
public List getFuzzySearchedResult(String query_string) {
    try {
        Session session = sessionFactory.openSession();
        FullTextSession fullTextSession = Search.getFullTextSession(session);
        final QueryBuilder mythQB = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(FaqMaster.class).get();
        org.apache.lucene.search.Query luceneQuery = mythQB.phrase().withSlop(3).onField("question_name").andField("qustion_answer").sentence("Department").createQuery();

        org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery);
        List result = fullTextQuery.list();
        return result;
    }
    catch(Exception e){System.out.println("ERROR: "); e.printStackTrace(); return null;}
}

请帮忙。

1 个答案:

答案 0 :(得分:0)

您使用的是与此版本的Hibernate Search不兼容的Hibernate ORM版本。

所有版本的Hibernate Search 4.5.x都需要4.3.x系列中的Hibernate ORM版本。

记录在案:

但你不是第一个被这个弄糊涂的人;-)所以我现在想知道我们是否应该添加一个明确的检查和更容易理解的错误信息。我创建了HSEARCH-1816以确定我们是否可以做得更好。