본문 바로가기

반응형

Tech/JPA

(11)
[JPA] 연관관계 매핑 (2) - 양방향 연관관계 1. 양방향 연관관계 양방향 연관관계는 두 객체가 서로 상대편을 참조하고 있는 연관관계를 의미한다. 기존의 단방향 연관관계에서는 참조하는 객체만 반대편 객체를 외래키와 매핑하여서 참조하고 있었다. 하지만 양방향 연관관계에서는 참조되는 객체도 참조하는 객체를 바라보고 있어서 반대 방향에서도 객체 그래프 탐색이 가능하다. // 참조되던 쪽에서는 참조하는 쪽을 바라보기 위한 멤버가 추가된다. class Team { @Id @GeneratedValue private Long id; @OneToMany(mappedBy = "team") // 일대다 관계. Member 객체의 team 에 매핑된다. List members = new ArrayList(); // 해당 team 에 해당하는 member 들을 List ..
[JPA] 연관관계 매핑 (1) - 단방향 연관관계 DB 에서는 테이블의 외래키를 이용하여 테이블간의 연관관계를 구성한다. JPA 는 전통적인 테이블 간의 관계를 객체간의 연관관계로 매핑시켜준다. 객체의 참조변수와 테이블의 외래키를 매핑시켜서 연관관계를 객체지향적으로 변환시켜준다. JPA 에서 연관관계는 방향에 따라서 단방향, 양방향으로 구분이 되며, 서로의 연관을 가지는 객체의 개수 (다중성, multiplicity) 에 따라서 다대일, 일대다, 일대일, 다대다 등으로 구분이 된다. 또한 양방향 연관관계에서 연관관계의 주인, owner 를 지정하여 어떤 객체가 해당 데이터의 관리 권한을 가질 것인가를 결정한다. 1. 연관관계의 필요성 객체의 연관관계가 없이 테이블의 연관관계를 기반으로 설계를 하게되면 객체지향적인 설계를 할 수가 없어진다. 테이블은 외래..
[JPA] 영속성 관리 JPA 는 영속성 컨텍스트를 통해서 객체와 DB 사이의 entity 를 관리한다. 영속성 컨텍스트는 entity manager 에 의해 관리되는데, 이를 통해서 애플리케이션과 데이터베이스 사이에서 데이터가 처리된다. - EntityManagerFactory 애플리케이션 로딩 시전에 DB 당 하나만 생성되는 팩토리이다. 요청이 있을 때마다 EntityManager 를 생성한다. - EntityManager 영속성 컨텍스트를 관리하는 객체이다. 실제 transaction 단위를 수행할 때마다 생성하는데, DB Connection 을 통해서 DB 에 접근한다. 1. 영속성 컨텍스트 (Persistence Context) 영속성 컨텍스트는 엔티티를 영구 저장하는 환경이다. 애플리케이션과 데이터베이스 사이에서 엔..

반응형