spring-data-jpa创建JpaMetamodelMappingContext
的实例,在使用@EnableJpaRepositories
时维护JPA实体的元模型。
我们希望将CrudRepository
功能(findOne
,delete
...)与org.springframework.data.jpa.domain.Specifications<T>
结合使用。 <{1}}或不需要来自方法名称的动态生成的查询。
在这种情况下我们需要@Query
吗?
(原因:就堆空间而言,上下文相当庞大。如果我们的用例不需要它,我们会尝试跳过它的创建。)
非常感谢!
答案 0 :(得分:0)
仅供参考,在实时环境中运行后:可以在没有JPA元模型的情况下运行spring-data的CrudRepository
和JpaRepository
。我们的Configuration
如下:
@Configuration
@EnableJpaRepositories(basePackageClasses = Foo.class)
@ComponentScan(basePackageClasses = { Bar.class })
public class DomainConfiguration {
/**
* The returned factory will built a {@link JpaMetamodelMappingContext} without a JPA MetaModel.
*
* This could save a couple of hundres MBs of heap space, but may disable some of spring-data's features.
*
* @return factory bean for {@link JpaMetamodelMappingContext}.
*/
@Bean(name = BeanDefinitionNames.JPA_MAPPING_CONTEXT_BEAN_NAME)
public JpaMetamodelMappingContextFactoryBean jpaMetamodelMappingContextFactoryBean() {
JpaMetamodelMappingContextFactoryBean factory = new JpaMetamodelMappingContextFactoryBean();
return factory;
}
}