[英]What's the purpose of JpaMetamodelMappingContext?
彈簧數據JPA創建的實例JpaMetamodelMappingContext
,它保持JPA實體的元模型,當@EnableJpaRepositories
被使用。
我們希望將CrudRepository
功能( findOne
, delete
...)與org.springframework.data.jpa.domain.Specifications<T>
結合使用。 @Query
或從方法名稱動態生成的查詢。
在這種情況下,我們需要JpaMetamodelMappingContext
嗎?
(原因:就堆空間而言,該上下文非常龐大。如果用例不需要它,我們將嘗試跳過其創建。)
非常感謝!
在現場環境中運行后,僅供參考:可以在沒有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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.