(이미지 출처)

1. JPA 로깅 설정.

  • 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPArepositoryDB에 해당 요청을 전달함.
    • 로깅(logging)이란 시스템이 작동할 때 당시의 상태작동 정보를 기록하는 것.
    • JPA로깅 설정은 resources -> application.properties에서 함.

디버그 레벨로 쿼리 출력.

logging.level.org.hibernate.SQL=DEBUG 
  • 로깅 레벨에는 총 7단계가 있음.
    • 출력 레벨을 설정하면 해당 레벨 이상의 로그가 출력됨.
      • TRACE(레벨1) : DEBUG 레벨보다 더 상세한 정보.
      • DEBUG(레벨2) : 응용 프로그램을 디버깅하는 데 필요한 세부 정보.
      • INFO(레벨3) : 응용 프로그램의 순조로운 진행 정보.
      • WARN(레벨4) : 잠재적으로 유해한 상황 정보.
      • ERROR(레벨5) : 응용 프로그램이 수행할 수 있는 정도의 오류 정보.
      • FATAL(레벨6) : 응용 프로그램이 중단될 만한 심각한 오류 정보.
      • OFF(레벨7) : 로깅 기능 해제.
    • Ex DEBUG로 설정하면 레벨2 ~ 레벨7까지의 모든 로그가 기록됨.

  • formal_sql
    • 한 줄로 작성된 SQL 쿼리에 개행을 적용시켜 가독성 좋게 해줌.
spring.jpa.properties.hibernate.format_sql=true

  • JPA 쿼리에서 DB로 넘어가는 매개변수값을 확인하는 코드 추가.
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
  • H2 DB 접속 URL 고정하기.
spring.datasource.generate-unique-name=false
spring.datasource.url=jdbc:h2:mem:testdb


2. SQL 쿼리 로그 확인하기.

  • 서버에서 데이터를 CRUD할 때 내부에서 어떤 SQL이 동작하는 지 로그를 통해 확인.

2-1. INSERT문.


  • id값에는 저렇게 default가 들어가 있음.
    • DB에서 auto_incrementpk가 자동적으로 생성.

2-2. SELECT문.

글 목록 조회.

글 상세 조회.


2-3. UPDATE문.


2-4. DELETE문.


3. @Entity, @Table

  • @Entity
    • 이 어노테이션이 붙은 클래스를 DB가 객체로 인식하도록 붙인 것.
    • 즉, 해당 클래스로 테이블을 생성하는 것.
  • @Table
    • 생성 테이블명을 특정 값으로 명시하고 싶은 경우에 사용.
    • 엔터티 클래스에 @Table(name = "테이블 이름")으로 작성.

4. 참고하기.

요즘 IT - 스프링 데이터 JPA

profile
Every cloud has a silver lining.

0개의 댓글