在spring方面获取执行的jpa查询

时间:2018-04-23 05:54:09

标签: spring-boot spring-data spring-data-jpa

环境 Spring启动版: - 2.0.1.RELEASE AspectJ版本: - 1.8.9 Hibernate版本: - 5.2.14.Final

我有下面的弹簧拦截器: -

@Aspect
@Configuration
public class JpaInterceptor {

    private static Logger logger = LoggerFactory.getLogger(JpaInterceptor.class);

    private ThreadLocal<SimpleDateFormat> sdf = new ThreadLocal<SimpleDateFormat>() {
        @Override
        protected SimpleDateFormat initialValue() {
            return new SimpleDateFormat("[yyyy-mm-dd hh:mm:ss:SSS]");
        }
    };

    @Pointcut("execution(public !void org.springframework.data.repository.Repository+.*(..))")
    public void jpaHandler() {
    }

    @Around("jpaHandler()")
    public Object logMethodCall(ProceedingJoinPoint jp) throws Throwable {
        String methodName = jp.getSignature().getName();
        logger.info(sdf.get().format(new Date()) + methodName);
        return jp.proceed();
    }

}

我暂时没有@Repository中的任何条件或本机SQL查询。 我希望在@Around建议中让JAInterceptor中的JPA执行查询。 我知道我们可以启用spring.jpa.show-sql = true来查看查询,但我的要求是在spring方面获取jpa查询。 可能吗?我怎样才能做到这一点?

0 个答案:

没有答案