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.
Это задокументировано:
- На странице загрузок
- В разделе " Требования" документации
- В README проекта
- В файлах Maven Pom
Но вы не первый человек, которого это смущает;-) Поэтому мне интересно, стоит ли нам добавлять явную проверку и более понятное сообщение об ошибке. Я создал HSEARCH-1816, чтобы посмотреть, сможем ли мы добиться большего.