spring-boot-starter-data-jdbc
: JDBC API, JDBC Template
mybatis-spring-boot-starter
: Mybatis
spring-boot-starter-data-jpa
: JPA
반복적인 작업이 존재: Connection 획득, Statement 획득, Connection 반납, Statement 반납, 예외처리
반복적인 작업은 줄었으나 코드와 쿼리가 섞여 유지보수가 여전히 힘들다.
자바 코드와 쿼리를 분리하여 쿼리 수정으로 자바 코드 수정 이나 컴파일 하는 작업을 하지 않도록 한다.
2가지 방법을 통해 쿼리를 작성한다.
생산성 증진
SQL에 의존적인 개발에서 탈피하여, 객체중심으로 생산적인 개발이 가능하다.
객체와 관계형테이블의 패러다임 불일치 해결
테이블을 객체처럼 다룰 수 있게 해준다.
영속성 컨테스트 안에서 관리를 하겠다!
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test
username: sa
password:
jpa:
generate-ddl: true
open-in-view: false
show-sql: true
hibernate:
ddl-auto: create
h2:
console:
enabled: true
오늘 강의 중 마지막 강의에서는 Auto Configuration을 사용하지 않고 JPA를 사용하는데 필요한 설정들을 직접 설정하는 것을 하였다. 이 때 spring.jpa.properties.hbm2ddl.auto
를 하면서 알게된 것들을 정리하겠다.
문서에 따르면 spring.jpa.properties.hbm2ddl.auto는 spring.jpa.hibernate.ddl-auto와 동일하다. 현재 강의에서는 auto configuration을 사용하지 않고 필요한 것을 직접 Bean으로 설정하여 사용하고 있다. 이 때 JpaProperties 객체 이용하게 되는데 JpaProperties 클래스의 내부를 보면 ddl-auto에 해당하는 속성이 없는 것을 확인할 수 있다. ddl-auto에 대한 설정을 JpaProperties에 전달하여 사용하기 위해 spring.jpa.properties.hbm2ddl.auto를 사용하게 되는거 같.
JpaProperties는 EntityManagerFactory에 대한 외부 설정(application.yml) 내용을 담고 있는 객체인거 같다.