【问题标题】:Hibernate Search mapping factory with spring bean injected注入spring bean的Hibernate Search映射工厂
【发布时间】:2014-03-31 18:46:56
【问题描述】:

我使用Hibernate Search programmatic api,并且我为每个实体设置了可配置的提升。可以通过我需要在映射工厂中访问的服务来读取配置。是否有可能在 SearchMappingFactory 中以某种方式获取此 bean?问题是在搜索映射需要其中的 bean 时,spring 上下文尚未完全创建。

 public class SearchMappingFactory{

   @Factory
   public SearchMapping getSearchMapping() {
       SearchMapping searchMapping = new SearchMapping();

       // here I need to read configuration using configurationService
       // ... define mapping ...

       return searchMapping;
   }
 }

然后我在 sessionFactory 中这样设置这个映射

 hibernateProperties.put("hibernate.search.model_mapping", SearchMappingFactory.class.getCanonicalName());

我可以通过内部带有自动装配 bean 的 SearchMappingFactory 实例,但 SearchMappingBuilder.getProgrammaticMappingClass 不允许这样做...

【问题讨论】:

  • 您能否澄清您的问题并添加更多上下文/代码? “可以通过我需要在映射工厂中访问的服务读取配置”是什么意思。你指的是什么配置服务? “问题是应用程序上下文没有完全创建” - 你是在谈论 Spring 应用程序上下文吗?
  • 对,就是Spring上下文,基本上我需要在SearchMappingFactory中自动装配spring bean。在这种情况下,这个 bean 是我的 configurationService,我在其中读取 xml 配置。

标签: java spring dependency-injection hibernate-search


【解决方案1】:

我找到了解决方案,我将 SearchMappingFactory 做成了一个具有自动装配依赖关系的 bean,并直接在那里传递了 searchMapping:

 hibernateProperties.put("hibernate.search.model_mapping", searchMappingFactory.getSearchMapping());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2014-10-06
    • 2017-08-12
    • 1970-01-01
    相关资源
    最近更新 更多