【问题标题】:How to set index base directory in hibernate full text search dynamically如何在休眠全文搜索中动态设置索引基目录
【发布时间】:2018-01-30 21:18:41
【问题描述】:

我正在尝试在我的项目中实现 Hibernate 全文搜索,并在此期间登录用户选择他/她想要使用的数据库。意味着使用动态数据源路由。索引基目录路径在hibernate.properties文件中,不同的数据库会有所不同。

所以现在我想在运行时根据用户选择的数据库来更改它。当我们在 spring 中创建会话 bean 时,代码正在读取 Hibernate 属性。我在互联网上进行了很多搜索,并得到了在运行时覆盖 hibernate.properties 文件的想法。但我有一些疑问:

  • 如何为会话工厂而不是 JPA 覆盖它

  • 我认为我不需要在覆盖属性后重新初始化会话工厂。它会在覆盖时自动读取新目录。

【问题讨论】:

    标签: java spring hibernate hibernate-search


    【解决方案1】:

    Hibernate Search 将从所有这些地方读取属性:

    • JPA persistence.xml 文件
    • 其他 JPA 配置(例如编程)
    • Hibernate ORM hibernate.properties 文件
    • 适用于SessionFactory 的任何其他 Hibernate ORM 属性
    • Java 系统属性
    • 环境变量

    简而言之:不要在固定的配置属性中设置索引库,而是以任何设置其他 Hibernate ORM 属性的方式动态设置它。

    【讨论】:

    • 嗨,Sanne,感谢您的回答。但实际上,我想在应用程序运行时更改索引目录。在我们的应用程序中,我们使用抽象数据源路由来指向应用程序或休眠到特定数据库,所以现在根据选择的数据库,我们需要使用索引目录。
    • 所以Sanne,你可以认为每个数据库都有不同的索引目录,我需要根据用户选择的数据库更改索引目录。那么我们能做到吗,或者我们怎么能做到。你能举一个例子来说明如何处理java系统属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2012-11-16
    • 2013-01-20
    • 1970-01-01
    相关资源
    最近更新 更多