【发布时间】: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