본문 바로가기

Spring/spring JPA2

양방향 연관관계 편의메소드 단방향, 양방향 데이터베이스 테이블은 외래 키 하나로 양 쪽 테이블 조인이 가능합니다. 따라서 데이터베이스는 단방향이니 양방향이니 나눌 필요가 없습니다. 그러나 객체는 참조용 필드가 있는 객체만 다른 객체를 참조하는 것이 가능합니다. 그렇기 때문에 두 객체 사이에 하나의 객체만 참조용 필드를 갖고 참조하면 단방향 관계, 두 객체 모두가 각각 참조용 필드를 갖고 참조하면 양방향 관계라고 합니다. 엄밀하게는 양방향 관계↔️는 없고 두 객체가 단방향 참조를 각각 가져서 양방향 관계처럼 사용하고 말하는 것입니다. ⬅️ ➡️ JPA를 사용하여 데이터베이스와 패러다임을 맞추기 위해서 객체는 단방향 연관 관계를 가질지, 양방향 연관 관계를 가질지 선택해야합니다. 선택은 비즈니스 로직에서 두 객체가 참조가 필요한지 여.. 2022. 1. 22.
spring JPA 영속성 컨텍스트 영속성 컨텐스트란? 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 엔티티의 생명주기 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed): 영속성 컨텍스트에 저장된 상태 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed): 삭제된 상태 비영속 엔티티 객체를 생성했지만 아직 영속성 컨텍스트에 저장하지 않은 상태를 비영속(new/transient)라 한다. Member member = new Member(); 영속 엔티티 매니저.. 2022. 1. 17.