해결된 질문
작성
·
624
·
수정됨
0
요약
QuerydslRepositorySupport 적용
p6spy 적용
쿼리 로그는 출력이 되고 있지만 native query로 출력되지 않음.
로그 예시
-- 현재 출력되는 로그 포맷
select
daOrder.id,
daOrder.createDate
from
DaOrder daOrder
-- 원하는 로그 포맷
select
d.id,
d.create_date
from
da_order d
로컬에서 네이티브 쿼리가 바로 로그에 보이도록 설정하고 싶은데
테이블명이 아닌 클래스명으로 쿼리가 출력이 되고 있는데요
혹시 어떤 설정을 바꿔야하는지 알 수 있을까요??
답변 1
1
안녕하세요, 정다을 님! 공식 서포터즈 codesweaver 입니다.
다음의 코드를 참조하여 Querydsl 설정 중 namingStrategy 를 변경해보시겠어요?
JPAQueryFactory queryFactory = new JPAQueryFactory(entityManager);
queryFactory.setExpressionHandlers(querydslBindingsFactory, new DefaultParameterMetadataProvider(), new ExceptionTranslator(), QuerydslConfig.DEFAULT);
queryFactory.setQuerydsl(new DefaultQuerydsl(querydslBindingsFactory, new EntityPathResolver(entityManager.getMetamodel()) {
@Override
public Path<?> createPath(String entityPath) {
// 테이블명 대신 클래스명 사용
return super.createPath(entityPath.replaceFirst("^[^\\.]+", ""));
}
}));
그리고 p6spy 설정파일(properties 혹은 yaml)에 다음을 추가해주시기 바랍니다.
use_class_name=false
감사합니다.
위 설정을 삭제하니까 네이티브 쿼리로 로그가 찍혔어요
달아주신 답변도 매우 도움이 되었습니다 감사합니다