将hibernate-search添加到现有系统的依赖项会导致NoSuchFieldException

问题描述 投票:1回答:1

我目前正在将hibernate-search添加到一个大的现有项目中,但是我已经遇到了一个我似乎无法弄清楚的问题。

我的问题归结为仅通过为hibernate-search添加maven依赖项来引入:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-search-orm</artifactId>
  <version>5.5.5.Final</version>
</dependency>
<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>5.0.11.Final</version>
</dependency>

一旦我将它添加到我的pom.xml中,构建项目并尝试运行它,我得到以下异常(这只是最后一部分):

Caused by: java.lang.NoSuchFieldError: LATEST
at org.hibernate.search.cfg.Environment.<clinit>(Environment.java:213)
at org.hibernate.search.spi.SearchIntegratorBuilder.createCleanFactoryState(SearchIntegratorBuilder.java:280)
at org.hibernate.search.spi.SearchIntegratorBuilder.buildNewSearchFactory(SearchIntegratorBuilder.java:186)
at org.hibernate.search.spi.SearchIntegratorBuilder.buildSearchIntegrator(SearchIntegratorBuilder.java:117)
at org.hibernate.search.hcore.impl.HibernateSearchSessionFactoryObserver.sessionFactoryCreated(HibernateSearchSessionFactoryObserver.java:75)
at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:520)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:465)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:708)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:416)
at org.springframework.orm.hibernate5.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:401)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1641)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
... 123 more

所以,首先我只是尝试谷歌它,但似乎没有其他人曾经在此设置之前遇到此问题。所以我试着深入研究代码,看看这个LATEST可能是什么。

在异常之后,我找到以下代码:

    static {
        DEFAULT_LUCENE_MATCH_VERSION = Version.LATEST;
        DEFAULT_SERVICES_MAP = CollectionHelper.newHashMap(1);
        DEFAULT_SERVICES_MAP.put(IndexManagerFactory.class, DefaultIndexManagerFactory.class.getName());
    }

然后我查看Versions.LATEST,结果发现版本中没有定义LATEST。

所以我的问题是,因为我认为这是我的配置问题,是否有一些我缺少或错误配置?

由于到目前为止我无法在任何地方找到任何关于这个问题的内容,我猜我在这个工作之前需要其他/更多设置,但我似乎无法找出什么。我试过按照hibernate-search网站上的入门指南,没有任何运气。

有人有主意吗?

java hibernate maven hibernate-search
1个回答
0
投票

问题发生在Hibernate Search 5.11.1上,我通过从3.6.2版到5.5.5更新到Apache Lucene解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.