JPA
영속성 컨텍스트
의존 라이브러리 설정, JPA 설정
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
...
}
# src/main/resources/application.yml
# Shift + F6 를 통해 확장자 변경 가능
spring:
h2:
console:
enabled: true
path: /h2
datasource:
url: jdbc:h2:mem:test
jpa:
hibernate:
ddl-auto: create # 스키마 자동 생성
show-sql: true # (Run 창에) SQL 쿼리 출력
JPA API 메서드
샘플 코드 실행을 위한 세팅 예시
@Configuration
public class JpaBasicConfig {
private EntityManager em;
private EntityTransaction tx;
@Bean // EntityManagerFactory는 DI를 통해 주입함
public CommandLineRunner testJpaBasicRunner(EntityManagerFactory emFactory) {
this.em = emFactory.createEntityManager();
return args -> {
Member member = new Member("example@naver.com");
em.persist(member);
Member resultMember = em.find(Member.class, 1L);
System.out.println("Id: " + resultMember.getMemberId() + ", email: " +
resultMember.getEmail());
};
}
}
따로 Transaction을 실행하지 않고 영속성 컨텍스트에만 저장하면,
Transaction을 실행하고 영속성 컨텍스트에 저장하고 커밋시,
UPDATE 과정
DELETE 과정