Spring Boot,Hibernate Search 属性

5
如何在使用Spring Boot时提供Hibernate Search参数?
...
spring.datasource.driverClassName=org.postgresql.Driver

hibernate.search.jmx_enabled=true
hibernate.search.default.directory_provider=filesystem
hibernate.search.generate_statistics=true
hibernate.search.lucene_version=LUCENE_CURRENT
hibernate.search.default.indexBase=/mypath-to-index

它不在乎我提供什么。默认设置总是被应用。

我认为下面的代码没有处理与Hibernate Search相关的属性。这可能是问题吗?

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/orm/jpa/JpaProperties.java


那些属性在哪里? - chrylis -cautiouslyoptimistic-
在应用程序属性文件中,位于src/main/resources。其他JPA和数据源设置可以正常评估。 - retromuz
谢谢@chrylis。我已经搞定了。 - retromuz
2个回答

26

如果在属性名称前加上"spring.jpa.properties.",您就可以将它们放在application.properties文件中。

例如:

spring.jpa.properties.hibernate.search.jmx_enabled=true
spring.jpa.properties.hibernate.search.default.directory_provider=filesystem
spring.jpa.properties.hibernate.search.generate_statistics=true
spring.jpa.properties.hibernate.search.lucene_version=LUCENE_CURRENT
spring.jpa.properties.hibernate.search.default.indexBase=/mypath-to-index

Spring会获取spring.jpa.properties.*下的所有属性,并在创建EntityManagerFactory后将它们传递(前缀被剥离)。


1
太棒了!这是最简洁的解决方案,更符合Spring Data JPA的方式(请参见此处)。 - Andrea

3

搞定了。

在src/main/resources下再创建一个名为"hibernate.properties"的属性文件,并将以下内容放入其中。

hibernate.search.jmx_enabled=true
hibernate.search.default.directory_provider=filesystem
hibernate.search.generate_statistics=true
hibernate.search.lucene_version=LUCENE_CURRENT
hibernate.search.default.indexBase=/mypath-to-index

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接