java.lang.NoSuchMethodError В модуле поиска Hibernate 5.9.0 с пружинной загрузкой JPA - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь добавить Hibernate Search / Lucene Search в мой проект загрузки JPA Spring, но я получаю 500 ошибок с указанием

«статус»: 500, «исключение»: «java.lang.NoSuchMethodError», "message": "org.hibernate.engine.spi.SessionDelegatorBaseImpl. (Lorg / hibernate / engine / spi / SessionImplementor;) V",

Я не знаю, какая зависимость создает проблему. Пожалуйста, помогите мне исправить это. Hibernate Search ORM версия 5.9 Я использую

Мой SearchConfig:

@Autowired
    private EntityManager bentityManager;

    @Bean
    CandidateLuceneSearchService CandidateLuceneSearchService() {
        CandidateLuceneSearchService CandidateLuceneSearchService = new CandidateLuceneSearchService(bentityManager);
        CandidateLuceneSearchService.initializeHibernateSearch();
        return CandidateLuceneSearchService;
    }

Мой код службы поиска:

@Transactional
    public List<Candidate> fuzzySearch(String searchTerm) {
          FullTextEntityManager fullTextEntityManager =
                  org.hibernate.search.jpa.Search.
                  getFullTextEntityManager(entityManager);
       // FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(centityManager);

        QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Candidate.class).get();
        org.apache.lucene.search.Query query =
                qb
                .keyword()
                .onFields("keyskill")
                .matching(searchTerm)
                .createQuery();

        //Query luceneQuery = qb.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1).onFields("keyskill")
               // .matching(searchTerm).createQuery();

        javax.persistence.Query jpaQuery = fullTextEntityManager.createFullTextQuery(query, Candidate.class);

        // execute search

        List<Candidate> BaseballCardList = null;
        try {
            BaseballCardList = jpaQuery.getResultList();
        } catch (NoResultException nre) {
            ;// do nothing

        }

        return BaseballCardList;


    }

Вот мой файл POM.XML

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>1.5.8.RELEASE</version>
  <relativePath />
</parent>

<dependencies>

  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>

  </dependency>


  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>


  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>


  <dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.3-1102-jdbc4</version>
  </dependency>



  <!-- Commons Libraries -->

  <!-- Spring boot libs start -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>

  </dependency>


  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <version>${spring.boot.version}</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>

  </dependency>
  <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-search-orm -->
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-orm</artifactId>
    <version>5.9.0.Final</version>

  </dependency>

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Возможно, вы не используете правильную версию Hibernate ORM.

Hibernate Search 5.9 следует использовать с Hibernate ORM 5.2 (5.2.3 или новее, предыдущие версии не будут работать).

Подробную матрицу совместимости см. На нашем веб-сайте: http://hibernate.org/search/releases/#compatibility-matrix

0 голосов
/ 10 января 2019

Вы либо смешиваете различные JAR-файлы Hibernate с неподдерживаемыми версиями, либо пытаетесь использовать старую версию Hibernate, не поддерживаемую Spring Boot. Проверьте зависимости вашего проекта.

Конкретный конструктор SessionDelegatorBaseImpl был представлен в Hibernate 5.3 . Возможно, вам нужно обновить версию Hibernate Search.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...