728x90

hibernate 5

(로그 관련) p6spy 설정 방법

1. p6spy란? p6spy란 쿼리 파라미터를 로그에 남겨주고 추가적인 기능을 제공하는 외부 라이브러리입니다. 사실 이 외부 라이브러리 없이도 application.yml에 다음과 같은 설정을 통해 쿼리 파라미터의 값들을 찍을 수 있습니다. # application.yml logging: level: org.hibernate.SQL: debug org.hibernate.type: trace # for native query org.springframework.jdbc.core.JdbcTemplate: DEBUG org.springframework.jdbc.core.StatementCreatorUtils: TRACE 이렇게 값을 찍게 될 경우 아래 그림과 같이 ?가 찍히고 그 아래 실제 들어간 파라미터 ..

JPA 2023.06.22

11) Logback 설정

아래 내용은 https://github.com/beaver84/setting-test 에서 실제 소스를 확인할 수 있습니다. Logback 의존성 추가 implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' application.properties 에 설정 추가 logging.level.root=debug logging.level.org.springframework.web=DEBUG logging.config=classpath:logback-local.xml logback-local.xml 파일 추가 // 30초마다 자동 리로드 설정 %green(%d{ISO8601}) %highlight(%-5level) [%magenta(%t)] ..

컬렉션 엔티티 조회 + 페이징을 함께 해결 (feat. default_batch_fetch_size)

먼저 ToOne(OneToOne, ManyToOne) 관계를 모두 페치조인 한다. ToOne 관계는 row수를 증가시키지 않으므로 페이징 쿼리에 영향을 주지 않는다. 컬렉션은 지연 로딩으로 조회한다. 지연 로딩 성능 최적화를 위해 hibernate.default_batch_fetch_size , @BatchSize 를 적용한다. hibernate.default_batch_fetch_size: 글로벌 설정 - 이 옵션을 사용하면 컬렉션이나, 프록시 객체를 한꺼번에 설정한 size 만큼 IN 쿼리로 조회한다. @Repository public class OrderRepository { public List findAllWithMemberDelivery(int offset, int limit) { return..

JPA 2022.06.16

JPA 로그에서 파라미터 값 보는 방법에 대한 연구

hibernate가 제공하는 방법 ← 현재 주다타운(moon-app-api)에서 로그백을 사용하고 있으므로 이 방법이 적합함 org.hibernate.type의 로그 레벨을 trace로 잡으면 됩니다. 그런데 먼저 로그라이브러리를 설정해야 해서 좀 일이 있습니다. pom.xml에 다음을 추가해줍니다. ch.qos.logback logback-classic 1.2.3 2. resources 아래에 logback.xml 파일을 만들어서 둡니다. 여기에 잘 보시면 org.hibernate.type이 trace로 설정되어 있습니다. %d{HH:mm} %-5level %logger{36} - %msg%n 3.그리고 실행하면 다음과 같은 추가로그를 볼 수 있습니다. /* insert hellojpa.Member *..

JPA 2022.02.14
728x90