본문 바로가기

개발스터디/스프링부트 JPA 스터디 (21년)

[JPA] 4. JPA와 DB의 동작 관계

springboot의 최고장점은 스프링보다 훨씬 환경설정이 쉽다는것입니다.

사실 application.properties 파일을 사용하는것도 굉장히 획기적인 기술적 발전이였는데, 저한테 익숙한 yaml 파일로도 설정을 할수 있다니!!!!!????  너무 좋아.

자동으로 필요한 테이블을 생성하거나 JPA를 이용할때 발생하는 SQL등을 확인하기 위해서는 application.property 파일이나 application.yml에 추가 설정이 필요합니다.

 

구글링하면 간단하게 나오는데, 기본적으로 세팅해서 쓰는 부분은 위에꺼는, JPA 처리시에 발생하는 SQL을 보여줄지 결정하는 부분이고 옵션체크하게되면, 이런식으로 console에 출력되고, 로깅을 남길수 있네요.

Hibernate: drop table if exists member
Hibernate: drop table if exists posts
Hibernate: create table member (

id varchar(255) not null auto_increment, 
age integer, 
meber_desc bigint not null, 
name varchar(255), 
primary key (id)

) 
engine=InnoDB


Hibernate: create table posts (id bigint not null auto_increment, created_date datetime, modified_date datetime, author varchar(255), content TEXT not null, title varchar(500) not null, primary key (id)) engine=InnoDB

 

  • ddl-auto 같은경우는 프로젝트 실행싱에 자동으로 DDL을 생성해줄것인지 결정하는 부부닙니다.
  • create-drop은 사실 H2에서는 create-drop이 default라 예시와 같이 명시적으로 쓰지 않아도 무관하다. 하지만 다른 DB를 테스트에서 사용하는 경우 대부분 none이 default이므로 적절한 옵션 값으로 바꿔서 사용하면 된다.

 

  jpa:
    show-sql: true
    hibernate:
      ddl-auto: create-drop

 

 

이런 부분들은 옵션들을 조금 상세히 알아두면 도움이 많이 될것 같네요.

서론이 길었습니다.

이정도면, JPA와 관계형 데이터베이스가 어떤 방식으로 동작하고 눈으로 확인 할 수 있는 옵션들을 챙겼구요,

 

지금부터 Repository 인터페이스에 대해서 조금 알아보도록 하겠습니다.