강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

준영속 상태

JPA로그레벨 설정문의

작성

·

816

0

강사님께서 진행한 결과와 다르게 콘솔에 찍히는 로그는 

아래와 같이 DEBUG레벨까지 정보를 보여주고 있습니다.

15:19:38.870 [main] DEBUG org.hibernate.engine.transaction.internal.TransactionImpl - begin

15:19:38.879 [main] DEBUG org.hibernate.SQL - 

    select

        member0_.id as id1_0_0_,

        member0_.name as name2_0_0_ 

    from

        Member member0_ 

    where

        member0_.id=?

 

강의에서 찍힌 로그와 동일하게 출력하기 위해서 로그레벨 설정하는 방법을 알고자합니다.

springJPA설정이 아닌 jpa설정으로 가능한지요?

퀴즈

JPA에서 영속성 컨텍스트는 어떤 역할을 하는 핵심 개념일까요?

객체와 테이블의 매핑 정보 정의

엔티티를 관리하고 DB와 동기화하는 환경 제공

SQL 쿼리 직접 작성 및 실행

데이터베이스 연결 풀 관리

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. ddoddo님

스프링 부트와 함께 사용중이시군요.

application.properties

다음 옵션을 넣어주시면 됩니다.

spring.jpa.show-sql=true

JPA를 사용하시면 다음 강의에서

https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21684?tab=curriculum&volume=1.00

14:15를 참고해서 persistence.xml을 참고해주세요.

감사합니다.

 

 

말씀주신 show_sql옵션의 JPA peristence.xml에 추가하여 sql문을 로그로 확인할 수 있는 상태입니다. 

하지만, 아래와 같이 불필요하게 동일한 쿼리를 DEBUG레벨로 보여주고 있습니다.

강의를 하실 때 강사님 화면에서는 'Hibernate: 쿼리문'만 콘솔에 찍혀 보이는 것을 확인할 수 있은데요. 이 부분에 대한 별도의 설정이 있으셨는지 궁금합니다.

 

===========================================================================================

14:31:48.912 [main] DEBUG org.hibernate.loader.collection.plan.AbstractLoadPlanBasedCollectionInitializer - Loading collection: [hellojpa.Team.members#1]

14:31:48.912 [main] DEBUG org.hibernate.SQL - 

    select

        members0_.TEAM_ID as team_id3_2_0_,

        members0_.MEMBER_ID as member_i1_2_0_,

        members0_.MEMBER_ID as member_i1_2_1_,

        members0_.TEAM_ID as team_id3_2_1_,

        members0_.USERNAME as username2_2_1_ 

    from

        Member1 members0_ 

    where

        members0_.TEAM_ID=?

Hibernate

    select

        members0_.TEAM_ID as team_id3_2_0_,

        members0_.MEMBER_ID as member_i1_2_0_,

        members0_.MEMBER_ID as member_i1_2_1_,

        members0_.TEAM_ID as team_id3_2_1_,

        members0_.USERNAME as username2_2_1_ 

    from

        Member1 members0_ 

    where

        members0_.TEAM_ID=?

14:31:48.913 [main] DEBUG org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl - Preparing collection initializer : [hellojpa.Team.members#1]

14:31:48.914 [main] DEBUG org.hibernate.loader.plan.exec.process.internal.CollectionReferenceInitializerImpl - Found row of collection: [hellojpa.Team.members#1]

14:31:48.915 [main] DEBUG org.hibernate.engine.loading.internal.CollectionLoadContext - 1 collections were found in result set for role: hellojpa.Team.members

 

 

 

https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/lecture/30118?tab=note&volume=1.00&speed=1&quality=1080

위 QueryDSL강의 2분48초에 

System.out으로 출력되는 show_sql 과

Logback으로 출력되는 logging.level.org.hibernate.SQL: debug 설정을 설명해주셨습니다.

 

로그는 로거로 출력하는 것이 올바르기에 show_sql옵션을 false로 지정하여 해결할 수 있었습니다.

감사합니다.

김영한님의 프로필 이미지
김영한
지식공유자

잘 찾아서 해결하셨군요^^ 감사합니다.

창신동 장첸님의 프로필 이미지
창신동 장첸

작성한 질문수

질문하기