본문 바로가기

JPA54

JPA - 영속성 관리 - 영속성 컨텍스트 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 영속성 컨텍스트 영속성 컨텍스트는 엔티티를 식별자 값(@Id - 기본 키) 으로 구분하므로 영속 상태는 식별자 값이 반드시 있어야 한다. 영속성 컨텍스트의 엔티티는 커밋하는 순간 DB에 반영하는데 이를 플러시(flush) 라고 한다. 영속성 컨텍스트는 아래 기능을 제공한다. 1차 캐시 동일성 보장 트랜잭션을 지원하는 쓰기 지연 변경 감지 지연 로딩 - 엔티티 조회 영속성 컨텍스트는 내부에 캐시를 갖고 있는데 이를 1차 캐시라고 한다. 영속 상태의 엔티티는 모두 이곳에 저장되며, @Id 로 맵핑한 식별값을 이용하여 구분한다. String id = "ID#1"; Member member = new Member(); member.setId(id); member.. 2021. 6. 24.
JPA - 영속성 관리 - 엔티티의 생명주기 - 참조: 자바 ORM 표준 JPA 프로그래밍 - 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저는 말 그대로 엔티티를 관리하는 관리자다. 엔티티를 저장, 수정, 삭제, 조회하며 개발자가 엔티티를 저장하는 가상의 데이터베이스라고 할 수 있다. 엔티티 매니저 팩토리는 용어에서도 알 수 있듯이, 엔티티 매니저를 생산하는 공장이다. 엔티티 매니저 팩토리를 생성하는 비용은 크지만 팩토리에서 엔티티 매니저를 생성할때에는 비용이 거의 들지 않는다. 엔티티 매니저 팩토리는 스레드-세이프 설계가 되어있어 어플리케이션에서 1개를 생성하여 공유해도 되지만, 엔티티 매니저는 스레드간 공유를 하면 안된다. 엔티티 매니저 팩토리는 생성시에 커넥션 풀을 만들며, 엔티티 매니저는 DB 커넥션을 사용하는데 DB 연결이 필요한 시.. 2021. 6. 23.
JPA - 엔티티 매니저, 트랜잭션, JPQL - 참조: 자바 ORM 표준 JPA 프로그래밍 - 이 글에 나오는 코드는 https://ocwokocw.tistory.com/118 글을 먼저 읽었다는 점을 전제로 작성한다. - Java example 엔티티 매니저를 살펴보기 전에 우리가 DB를 다룰 때 일반적으로 사용하는 등록, 수정, 삭제, 조회 연산 예제 코드를 살펴보자. 아래 코드는 엔티티 매니저 설정, 트랜잭션 관리, 비즈니스 로직 3 부분으로 구성 되어있다. @SpringBootApplication public class JpaApplication { public static void main(String[] args) { SpringApplication.run(JpaApplication.class, args); EntityManagerFac.. 2021. 6. 23.
JPA - 환경구축 및 객체맵핑, persistence.xml - 참조: 자바 ORM 표준 JPA 프로그래밍 - 참조: http://www.h2database.com/html/tutorial.html#creating_new_databases - 환경 구축 JPA Project를 시작하기 위해 환경을 구축해보자. 환경설정은 STS(Spring Tool Suit) 의 Spring Starter Project 를 이용한다. 아래 그림을 참조하여 Maven과 Java 8 version 을 선택한다. 그 다음 화면에서 Dependency 를 고를 수 있다. Spring Web 과 Template 엔진으로 Thymeleaf 를 기본으로 선택해준다. H2 DB와 Spring Data JPA 를 선택한다. 설치를 끝냈으면 h2 를 다운받아야 한다. H2는 In-memory 형으로.. 2021. 6. 23.