本系列的第二篇文章,主要讲解在spring-data-jpa中占有重要地位的RepositoryQuery接口的用途和分类。
首先我们看看RepositoryQuery接口极其子类的类图
上图很清晰的说明,RepositoryQuery接口包含SimpleJpaQuery,NativeJpaQuery,PartTreeJpaQuery,NamedQuery,StoredProcedureJpaQuery等(叶子节点)子类。
JpaRepositoryFactory类在动态实例化Repository接口时,其父类RepositoryFactorySupport定义了一个私有Map类变量:
首先我们看看RepositoryQuery接口极其子类的类图
上图很清晰的说明,RepositoryQuery接口包含SimpleJpaQuery,NativeJpaQuery,PartTreeJpaQuery,NamedQuery,StoredProcedureJpaQuery等(叶子节点)子类。
JpaRepositoryFactory类在动态实例化Repository接口时,其父类RepositoryFactorySupport定义了一个私有Map类变量:
private final Map<Method, RepositoryQuery> queries = new ConcurrentHashMap<Method, RepositoryQuery>();而动态实例化Repository接口时,将实例化一个QueryExecutorMethodInterceptor,为其增加监听和interceptor。上篇文章提到过,QueryExecutorMethodInterceptor是RepositoryFactorySupport的内部类,实现了org.aopalliance.intercept.MethodIntercept

本文深入探讨Spring Data JPA中RepositoryQuery接口的作用和分类。RepositoryQuery包括SimpleJpaQuery、NativeJpaQuery、PartTreeJpaQuery、NamedQuery和StoredProcedureJpaQuery等子类。当动态实例化Repository接口时,每个方法对应一个RepositoryQuery实例,根据方法上的注解类型映射到不同类型的RepositoryQuery,如JPQL、原生SQL、方法名识别、命名查询和存储过程调用。
最低0.47元/天 解锁文章
4659

被折叠的 条评论
为什么被折叠?



