본문 바로가기

JPA3

Data JPA 02 - 예제 도메인 확인하기, 공통 인터페이스 엔티티로 만들어보자. import lombok.*; import javax.persistence.*; @ToString @NoArgsConstructor(access= AccessLevel.PROTECTED)/*프록시 객체를 위해 protect로 기본 생성자*/ @Getter @Setter @Entity public class Member { @Id @GeneratedValue @Column(name="member_id") private Long id; private String username; private int age; @ToString.Exclude//연관관계 필드는 toString을 안하는 것이 좋다. @JoinColumn(name="team_id") @ManyToOne(fetch=FetchT.. 2022. 1. 4.
4 JPA 플러시(flush) 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 플러시 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하는 것입니다. 플러시가 발생하는 순서는 아래와 같습니다. 1. 변경 감지 (dirty checking) 2. 수정된 엔티티 '쓰기 지연 SQL 저장소'에 등록 3. '쓰기 지연 SQL 저장소'의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법은 3가지가 있습니다. 1. em.flush() (직접 호출) 2. 트랜잭션 커밋 (플러시 자동 호출) 3. JPQL 쿼리 실행 (플러시 자동 호출) 이제 위의 3가지 방법으로 영속성 컨텍스트를 flu.. 2021. 7. 3.
3 JPA 영속성 컨텍스트 이해하기 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이라는 의미로, 눈에 보이지 않는 논리적인 개념입니다. 이 영속성 컨텍스트에 접근하기 위해서는 EntityManagerFactory와 EntityManager를 통해 접근해야 합니다. EntityManager, EntityManagerFactory 엔티티의 생명주기 엔티티의 생명 주기에는 4가지 단계가 있습니다. 1. 비영속( new / transient ) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 (ex. A객체를 new했을 때) 2. 영속( managed ): 영속성 컨텍스트에.. 2021. 7. 3.