我有一个带有spring-data-jpa 2.0.5.RELEASE的项目。我需要使用参数和其他信息登录每个执行的查询(insert
,update
,delete
,select
)的文件。我发现您可以启用Hibernate来记录查询和参数,但是它们不是我所需的格式。
现在,它打印出如下内容: -(信息)休眠:从表a中选择*,其中a.x =? -(信息)将参数[1]绑定为[VARCHAR]-com.mypackage.foo
我想要类似的东西: -(调试)用户Mickey Mouse从表a中询问Select *,其中a.x =? [com.mypackage.foo]
有没有办法做类似的事情? 我尝试使用aop,但找不到切入点,并且不确定是否找到正确的包装方法。
这是我的测试。 (不起作用)
@Pointcut("within(org.springframework.data.jpa.repository.query.JpaQueryExecution+)")
public void jpaQueryMethods() {}
@Pointcut("execution(* execute(..))")
public void executionMethods() {}
@Before("jpaQueryMethods()")
public void beforeJpaQueryExecution(JoinPoint joinPoint){
logger.fatal(" signature->", joinPoint.getSignature().toLongString());
if(joinPoint.getArgs()!=null) {
for(Object arg: joinPoint.getArgs()) {
logger.info("----------->"+String.valueOf(arg));
}
}
答案 0 :(得分:1)
要查看绑定参数,必须设置此属性:
#Spring boot
logging.level.org.hibernate.type.descriptor.sql=trace
您还可以添加自定义消息: How to Audit Spring data jpa @Query?