我使用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不允许...
答案 0 :(得分:0)
我找到了解决方案,我将SearchMappingFactory设为一个具有自动连接依赖关系的bean,并直接在那里传递searchMapping:
hibernateProperties.put("hibernate.search.model_mapping", searchMappingFactory.getSearchMapping());