Hibernate Search映射工厂注入了spring bean

时间:2014-03-31 18:46:57

标签: java spring dependency-injection hibernate-search

我使用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不允许...

1 个答案:

答案 0 :(得分:0)

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

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