본문 바로가기

JPA11

자바 ORM 표준 JPA 기본편 - 다양한 연관관계 매핑 이번 글은 연관관계에 매핑에 대해 알아보는 시간을 갖겠습니다. 먼저 기본적인 고려사항에 대해 알아보겠습니다. 연관관계 매핑시 고려사항 3가지 • 다중성 • 단방향, 양방향 • 연관관계의 주인 다중성 JPA에서 나오는 어노테이션은 전부 DB랑 매핑하기 위해 있다고 보면 된다. 그래서 데이터베이스의 관점에서의 다중성을 기준으로 고민하면 된다. 애매할 땐 반대쪽을 생각하면 된다.(ex : 회원 - 팀 (대칭성) 1대다 의 반대는 다대1) 대칭성 생각! 다대일: @ManyToOne 일대다: @OneToMany 일대일: @OneToOne 다대다: @ManyToMany (실무에서 거의 사용 안함) 단방향, 양방향 • 테이블 외래 키 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없다 • 객체 참조용 필드가 있는 쪽.. 2024. 4. 4.
자바 ORM 표준 JPA 기본편 - 연관관계 매핑 기초 [김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 학습 후 정리한 글입니다.] 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 용어 이해 • 방향(Direction) : 단방향, 양방향 • 다중성(Multiplicity) : 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 • 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요 연관관계가 필요한 이유 '객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.' by 객체지향의 사실과 오해 예제 시나리오 • 회원과 팀이 있다. • 회원은 하나의 팀에만 소속될 수 있다. • 회원과 팀은 다대일 관계다. 객체 테이블에 맞추어 모델링(연관관계가 없는 객체).. 2024. 4. 1.
자바 ORM 표준 JPA 기본편 - 엔티티 매핑 엔티티 매핑 JPA를 사용하는데 가장 중요한 것은 엔티티와 테이블을 정확하게 매핑하는 것이다. XML에 기입해도 되지만 어노테이션 방식이 좀 더 쉽고 직관적이라서 대표적인 매핑 어노테이션을 소개하려고 합니다. 엔티티 매핑 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn (1대N, N대N) 1. 객체와 테이블 매핑 @Entity @Entity가 붙은 클래스는 JPA가 관리를 시작하고, 이것을 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 가 필수. 주의! 기본 생성자 필수(파라미터가 없는 public 또는 protected 생성자) - 왜냐하면 JPA.. 2024. 3. 29.
자바 ORM 표준 JPA 기본편 - 영속성 관리 JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 1.영속성 관리 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 영속성 컨텍스트란 "엔티티를 영구 저장하는 환경" 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 영속성 컨텍스트는 엔티티 매니저를 생성할 때 하나 만들어진다. 엔티티 매니저? 영속성 컨텍스트? 영속성 컨텍스트는 논리적인 개념 눈에 보이지 않는다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태=객체를 생성만한 상태 영속(managed): 영속성 컨텍스트에 관리되는 상태 준영속(detacked): .. 2024. 3. 26.
자바 ORM 표준 JPA 기본편 - JPA 소개 목표 JPA가 언제 동작하는지 어떻게 돌아가는지 이해가 우선! RDBMS - 객체를 관계형 DB에 보관, SQL 중심적인 개발의 문제점 CRUD 무한 반복, 지루한 코드 SQL에 의존적인 개발을 피하기 어렵다. ORM 이란? Object-relational mapping(객체 관계 매핑) 객체는 객체대로 설계 관계형 데이터베이스는 관계형 데이터베이스대로 설계 ORM 프레임워크가 중간에서 매핑 대중적인 언어에는 대부분 ORM 기술이 존재 JPA는 애플리케이션과 JDBC 사이에서 동작 persist(저장),find(조회),setName(수정),remove(삭제) JPA의 성능 최적화 기능 1차 캐시와 동일성(identity)보장 - 같은 트랜잭션 안에서는 같은 엔티티를 반환 - 약간의 조회 성능 향상 트랜잭.. 2024. 3. 24.