org.hibernate.impl.SessionImpl не может быть приведен к org.hibernate.engine.spi.SessionImplementor при использовании полнотекстового поиска

Я использую 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 ответ

Вы используете версию Hibernate ORM, которая не совместима с этой версией Hibernate Search.

Для всех версий Hibernate Search 4.5.x требуется версия Hibernate ORM из серии 4.3.x.

Это задокументировано:

Но вы не первый человек, которого это смущает;-) Поэтому мне интересно, стоит ли нам добавлять явную проверку и более понятное сообщение об ошибке. Я создал HSEARCH-1816, чтобы посмотреть, сможем ли мы добиться большего.

Другие вопросы по тегам