У меня есть проект, который был изначально построен с использованием Spring JPA и Hibernate. Мне нужно внедрить Hibernate Search, и я считаю, что у меня есть проблемы с зависимостями.
Мой pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent>
<!-- JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
<!-- Hibernate Search -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>5.7.0.Final</version>
</dependency>
Индексирование Hibernate Search работает нормально. Я запускаю этот код, и он работает:
FullTextEntityManager fullTextEntityManager =
Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
Ошибка возникает, когда я запускаю запрос как следующий:
FullTextEntityManager fullTextEntityManager
= Search.getFullTextEntityManager(entityManager);
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder()
.forEntity(Speaker.class)
.get();
org.apache.lucene.search.Query query = queryBuilder
.keyword()
.onFields("firstName", "lastName", "biography")
.matching(criteria)
.createQuery();
org.hibernate.search.jpa.FullTextQuery jpaQuery
= fullTextEntityManager.createFullTextQuery(query, Speaker.class);
Исключение, которое я получаю, следующее:
java.lang.NoSuchMethodError: org.hibernate.query.internal.ParameterMetadataImpl.<init>([Lorg/hibernate/engine/query/spi/OrdinalParameterDescriptor;Ljava/util/Map;)V
at org.hibernate.search.impl.FullTextSessionImpl.createFullTextQuery(FullTextSessionImpl.java:86) ~[hibernate-search-orm-5.7.0.Final.jar:5.7.0.Final]
at org.hibernate.search.impl.FullTextSessionImpl.createFullTextQuery(FullTextSessionImpl.java:75) ~[hibernate-search-orm-5.7.0.Final.jar:5.7.0.Final]
at org.hibernate.search.jpa.impl.FullTextEntityManagerImpl.createFullTextQuery(FullTextEntityManagerImpl.java:97) ~[hibernate-search-orm-5.7.0.Final.jar:5.7.0.Final]
Есть ли проблема совместимости между Hibernate 5.4.0.Final, Hibernate Search 5.7.0.Final и JPA?