首页 > 解决方案 > Spring-jpa 使用 spring-aop 动态代理?

问题描述

我想知道jpa“延迟加载”。所以,我尝试调试。但出现的第一堂课是JdkDynamicAopProxy.class。和方法是invoke()

过去,我读过 jpa 的书。但我无法阅读。

spring-jpa 使用 Spring aop 动态代理?

我使用的 spring boot 版本是 '2.0.8' 和 'org.springframework.boot:spring-boot-starter-data-jpa'。

我尝试调试此代码。

User user = userRepository.findById(595525L)
                .orElseThrow(() -> new IllegalArgumentException("does not exist user data"));

我找到了运行select查询的代码。

final class JdkDynamicAopProxy implements AopProxy, InvocationHandler, Serializable {

...

@Override
@Nullable
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  ....
  invocation = new ReflectiveMethodInvocation(proxy, target, method, args, targetClass, chain);
  retVal = invocation.proceed();  // here
  ....
}

标签: hibernatespring-bootjpalazy-loading

解决方案


推荐阅读