본문 바로가기
BackEnd/Spring

[Spring] Spring Data JPA 설정 - 정의한 JPA Entity 클래스로 테이블 자동 생성되도록 설정하기

by ryuneng 2025. 1. 18.
반응형

📌 application.properties 설정

spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.show-sql=true

1. spring.jpa.hibernate.ddl-auto=update

  • SQL의 DDL 기능 - update: 변경분만 반영 (개발환경에서만 사용할 것)
  • 만약 테이블을 Developer에서 SQL로 따로 생성해두고, JPA를 사용하고 싶다면 해당 설정을 추가하지 않으면 된다.

2. spring.jpa.properties.hibernate.format_sql=true

  • 스프링 부트가 실행되면서 사용하는 SQL들의 포맷팅, true인 경우 줄바꿈 처리가 되기 때문에 좀 더 알아보기 쉬워진다.

3. spring.jpa.show-sql=true

  • 실행 과정에서 만들어지는 SQL 출력


❓ ddl-auto

Entity 클래스를 정의하면 DDL(Data Definition Language)을 자동으로 작성하여 테이블이 생성되거나 수정되도록 하는 설정

속성값

create

  • Entity 클래스를 정의하면 매핑되는 테이블을 자동으로 생성한다. 만약 테이블이 존재하면 기존 테이블을 삭제하고 새로 테이블을 생성한다.

create-drop

  • create와 동일하게 동작하지만, 애플리케이션이 종료될 때 모든 테이블을 삭제한다.

update

  • create와 동일하지만, 기존 테이블이 존재하면 삭제하는 것이 아니라 컬럼을 변경한다.

validate

  • 다른 속성값과 달리 DDL 구문을 생성해서 테이블을 생성하거나, 수정하지 않는다.
    엔티티 클래스와 테이블이 정상적으로 매핑되는지만 검사한다.

none

  • 아무 일도 일어나지 않는다.




⛔ 주의

실제 프로젝트 환경에서 ddl-auto 속성값을 create, create-drop, update로 설정하면 절대x999999999 안됨
반드시 validate, none 두가지만 사용하기 !!!

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-Spring-Data-JPA-설정-정의한-JPA-Entity-클래스로-테이블-자동-생성되도록-설정하기