Java 指定Hibernate搜索运行时目录

Java 指定Hibernate搜索运行时目录,java,hibernate,jakarta-ee,jndi,hibernate-search,Java,Hibernate,Jakarta Ee,Jndi,Hibernate Search,我不熟悉Hibernate搜索。在《入门指南》中,它说我可以使用这两个属性指定索引的存储位置 <property name="hibernate.search.default.directory_provider" value="filesystem"/> <property name="hibernate.search.default.indexBase" value="/var/lucene/indexes"/> 问题是

我不熟悉Hibernate搜索。在《入门指南》中,它说我可以使用这两个属性指定索引的存储位置

<property name="hibernate.search.default.directory_provider"
          value="filesystem"/>

<property name="hibernate.search.default.indexBase"
          value="/var/lucene/indexes"/>

问题是,这是一条静态路径,在开发和生产中可能不同。如何在运行时更改路径?可以通过JNDI,也可以通过某种方式在运行时修改persistence.xml


提前感谢。

一个解决方案是使用构建时过滤。您可以将正确的值(取决于目标环境)过滤到persistence.xml中。我以前使用过这种方法,效果非常好

另一种方法是使用相对路径。然后,相对于启动jvm的目录创建目录

最后但并非最不重要的一点是,如果您使用的是Spring,您也可以看看这个