我遇到了使用 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
Bootstrap 不能与 spring-boot 一起使用?