У меня есть проект с spring-data-jpa 2.0.5.RELEASE.Мне нужно войти в файл каждый выполненный запрос (insert
, update
, delete
, select
) с параметрами и другой информацией.Я обнаружил, что вы можете включить Hibernate для регистрации запросов и параметров, но они не в нужном мне формате.
Прямо сейчас он печатает что-то вроде этого: - (информация) Hibernate: выберите * из таблицы а где топорзнак равно- (info) параметр привязки [1] как [VARCHAR] - com.mypackage.foo
Я хочу что-то вроде: - (отладка) Пользователь Микки Маус спрашивает Select * из таблицы a, где ax =?[com.mypackage.foo]
Есть ли способ сделать что-то подобное?Я попытался использовать aop, но у меня проблема с поиском pointcut, и я не уверен, что нашел правильный метод для переноса.
Это мой тест.(Не работает)
@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));
}
}