我有一个最初使用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之间是否存在兼容性问题?
答案 0 :(得分:0)
从hibernate 5.4的兼容性列表中,您需要hibernate-search-orm 5.11参见http://hibernate.org/search/releases/5.11/
问候 卢克