我遇到了使用 spring-boot 2.0.2.RELEASE 进行 Hibernate/lucene 搜索的问题

Posted

技术标签:

【中文标题】我遇到了使用 spring-boot 2.0.2.RELEASE 进行 Hibernate/lucene 搜索的问题【英文标题】:I am facing issue with Hibernate/lucene search with spring-boot 2.0.2.RELEASE 【发布时间】:2019-01-24 14:20:43 【问题描述】:

实际上我想在我的项目中实现 lucene 搜索,但在添加 hibernate-search-orm.jar 后出现以下异常 我正在使用 spring-boot 2.0.2、spring-data-JPA 和 my-sql 作为数据库,请帮我解决这个问题

08-17-2018 19:22:49 [WARN] --- 上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.BeanCreationException:创建类中定义的名称为“entityManagerFactory”的bean时出错路径资源[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]:init方法调用失败;嵌套异常是 java.lang.NoClassDefFoundError: org/hibernate/resource/beans/spi/ManagedBeanRegistry

 <dependencies>
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-search -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search</artifactId>
            <version>5.10.2.Final</version>
            <type>pom</type>

        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-search-orm -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-orm</artifactId>
            <version>5.10.1.Final</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
</dependencies>

【问题讨论】:

我正在使用 Spring 数据 JPA,所以如果我添加了 hibernate-search-orm jar,就会出现这个错误 【参考方案1】:

您的 pom.xml 中似乎缺少数据库驱动程序 jar。请添加适当的 jar 并重新构建。

例如如果你使用的是 postgres,你可能需要在你的 pom 中添加它。

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>

对于oracle,请添加以下一项。

     <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>12.1.0.2</version>
    </dependency>

请确保您在 application.properties 文件中配置了数据库属性。

【讨论】:

以上是关于我遇到了使用 spring-boot 2.0.2.RELEASE 进行 Hibernate/lucene 搜索的问题的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 2017版 spring-boot2.0.2 自动配置Condition

Spring-boot千分尺定时器()它是如何工作的?

Bootstrap 不能与 spring-boot 一起使用?

spring-boot 应用程序的外部配置

使用 Spring-Boot 2.1 从 .yml 读取对象列表 [重复]

spring-boot中tomcat的默认连接池?