(JPA - 1) JPA사용을 위한 환경 설정

Spring boot + Spring Data JPA(하이버네이트)

Spring Data JPA를 사용하면 JPA구현체로 Hibernate를 사용한다.
Dependency를 따라가 보면 관련된 여러 라이브러리들이 추가되어 있는 것을 확인 할 수 있다.
fig

  • spring-orm: 스프링과 JPA를 연동하기 위한 라이브러리
  • hibernate-core
  • hibernate-entitymanager: 하이버네이트가 JPA 구현체로 동작하도록 JPA 표준을 구현한 라이브러리
  • hibernate-jap-2.1: JPA2.1 표준 API 라이브러리. *javax.persistence.** 를 포함하고 있다.
  • tomcat-jdbc: 커넥션 풀
1
2
3
4
5
6
7
8
9
10
# pom.xml
<dependencies>
...
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
...
</dependencies>

spring-data-jpa 및 hibernate 설정 및 속성 의미

설정 방법

src/main/resources 및에 application.properties
application.yml 에 관련 속성을 설정하면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# src/main/resources/application.yml
spring:
datasource:
dataSourceClassName: org.h2.jdbcx.JdbcDataSource
url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
username:
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
database: H2
generate-ddl: false
open-in-view: false
show-sql: true
hibernate:
ddl-auto: validate
naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
properties:
hibernate.cache.use_second_level_cache: true
hibernate.cache.use_query_cache: false
hibernate.generate_statistics: true
hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
각 속성의 의미
  • spring.data.jpa.repositories.enabled=true # Enable JPA repositories.
  • spring.jpa.database-platform= # Name of the target database to operate on, auto-detected by default. Can be alternatively set using the “Database” enum.
  • spring.jpa.database= # Target database to operate on, auto-detected by default. Can be alternatively set using the “database-platform” property.
  • spring.jpa.generate-ddl=false # Initialize the schema on startup.
  • spring.jpa.open-in-view=true # Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the thread for the entire processing of the request.
  • spring.jpa.show-sql=false # Enable logging of SQL statements.
  • spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the “hibernate.hbm2ddl.auto” property. Default to “create-drop” when using an embedded database, “none” otherwise.
  • spring.jpa.hibernate.naming-strategy= # Naming strategy fully qualified name.
  • spring.jpa.properties= # Additional native properties to set on the JPA provider.
    hibernate 상세 설정 참조

NOTE SpringBoot에서 환경설정
spring boot에서는 /src/main/resources 밑에 application.properties와 application.yml 설정을 자동으로 읽어들인다.

Share