JPA 4

[SPRING] JPA 영속성 전이

영속성 전이 특정 엔티티를 영속 상태로 만들 경우 연관된 엔티티도 함께 영속 상태로 만들고 싶을 때 사용 예를 들자면 부모엔티티를 저장할 경우 자식엔티티도 함께 저장 (자식의 연관관계가 두개 이상인 경우 사용하면 안됨) 영속성 전이 옵션 옵션 설명 CascadeType.ALL 모두 적용 CascadeType.PERSIST 영속 CascadeType.MERGE 병합 CascadeType.REMOVE 삭제 CascadeType.REFRESH 리프레쉬 CascadeType.DETACH DETACH 실무에서는 보통 ALL / PERSIST / REMOVE 옵션을 사용 Persist 옵션 @Entity @Getter @Setter public class Parent { @Id @GeneratedValue @Col..

SPRING 2022.06.06

[SPRING] JPA 연관관계

연관관계 매핑 구성 방향 : 단방향 / 양방향이 있음, 방향은 객체관계에서만 존재함, 테이블 관계같은 경우 항상 양방향 다중성 : 다대일, 일대다, 일대일, 다대다와 같은 다중성이 존재 연관관계의 주인 : 객체를 양방향 관계로 만들시, 주인을 지정해야함 연관관계는 객체들의 협력 공동체를 만들기 위하여 필요함, JPA에서 가장 중요한 것은 객체와 테이블을 어떻게 매핑되는지 이해하는 것이므로 연관관계는 중요함 테이블 중심의 설계의 문제 객체를 테이블에 맞추어서 모델링할 경우, 협력관계를 만드릭가 어려움 테이블은 외래키로 조인을 사용하여, 연관된 테이블을 찾고, 객체는 참조를 사용하여 연관된 객체를 찾음 테이블과 객체사이의 이러한 차이로 인한 제약조건이 생김 단방향 연관관계 객체 연관관계 회원 객체는 Memb..

SPRING 2021.05.19

[SPRING] JPA 영속성 컨텍스트

정의 엔티티를 영구 저장하는 환경 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 보관하고 관리함 엔티티 생명주기 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed) : 영속성 컨텍스트에 저장된 상태 준영속(detacted) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed) : 삭제된 상태 //객체를 생성한 상태 (비영속) Member member = new member(); member.setId("member1"); member.setUsername("회원1"); //객체를 저장한 상태 (영속) em.persist(member); //엔티티를 영속성 컨텍스트에서 분리 (준영속) em.detach(membe..

SPRING 2021.05.16