application. 에서
yml
properties
차이를 몰랐음. 찾아보니 문법의 차이고 성능 측면에서는 상관없음
jpa:
hibernate:
ddl-auto: validate
properties:
hibernate:
format_sql: true
show-sql: true
spring.jpa.hibernate.ddl-auto = validate
spring.jpa.properties.hibernate.format_sql = true
spring.jpa.show-sql = true
“엔티티(Entity)와 실제 DB 테이블 구조가 일치하는지만 검사”
옵션별 의미
값 의미
none 아무 것도 안 함
validate 구조만 검사 (지금 추천)
update 엔티티 기준으로 테이블 수정
create 실행 시 테이블 전부 삭제 후 생성
create-drop 실행 시 생성, 종료 시 삭제
spring JPA는 내부적으로 Hibernate를 쓰기 때문에
Hibernate 설정을 이렇게 "넘겨서" 쓰는 구조
예시
기본
select user0_.id as id1_0_,user0_.email as email2_0_ ...
select
user0_.id as id1_0_,
user0_.email as email2_0_
from
user user0
디버깅에 능함
실제로 어떤 SQL이 DB에 날아가는지 확인 가능