JPA

JPA/Base

JPA - 연관관계 매핑 #2

✍연관관계 매핑시 고려사항 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 - 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데인 구조. 사실, 단방향 2개라고 볼 수 있다. ㆍ다중성 ㆍ단방향, 양방향 ㆍ연관관계의 주인 ❓❗ 다대일 [N:1] @ManyToONe ❓❗ 일대다 [1:N] (운영 측면에서 권장하지 않음) @OneToMany - 기본적으로 DB 설계상 일대다 관계에서 일인 쪽에 FK가 있을 수 없다. 연관관계의 주인도 마찬가지. (일 쪽에서 FK를 가지고 있으면 테이블 하나에서 다른 FK 때문에 중복 테이블이 생성되기 때문.) => 따라서, 테이블의 일대다 관계는 항상 다(N) 쪽에 외래 키가 있다. - JPA 표준 스펙에서는 '일대다 '관계 매핑을 지원. - 연관관계의 주인..

JPA/Base

JPA - 연관관계 매핑

객체와 관계형 DB가 지향하는 패러다임의 차이를 극복하는 방법. ✍연관관계 매핑 - 🌹 객체의 참조와 테이블의 외래 키를 매핑 - 🔮 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. - 테이블에 맞추어 모델링을 하면, 코드를 객체 지향스럽게 짤 수 없음. => 외래 키에 대한 참조가 있어야하는데, 테이블에 맞추어 설계하면 객체가 외래 키 식별자 값을 그대로 갖게 됨. => 따라서 다른 테이블에 접근할 때 외래 키 식별자로 계속 DB에 접근해야 한다. 테이블은 외래 키로 조인을 사용하여 연관된 테이블을 찾음 객체는 참조를 사용해서 연관된 객체를 찾음. ㆍ단방향 연관관계 @ManyToOne - 해당 Entity에서 다른 entity에 접근하기 위한 참조의 개념으로, N : 1 의 관계..

JPA/Base

JPA - Entity Mapping

JPA의 핵심 - 영속성 컨텍스트나 내부 매커니즘 / 객체와 관계형 데이터베이스를 어떻게 매핑하는지 ✍엔티티 매핑 ㆍ객체와 테이블 매핑 객체 & 테이블 매핑 - @Entity @Table 필드와 컬럼 매핑 - @Column 기본 키 매핑 - @Id 연관관계 매핑 - @ManyToOne @JoinColumn @Entity - @Entity가 붙은 클래스는 JPA가 전담하여 관리. - 기본 생성자 필수 - final 클래스, enum, interface, inner 클래스 X - 저장할 필드에 final 사용 X @Table - name = 매핑할 테이블 이름 - uniqueConstraints = unique 제약조건을 걺 ㆍ데이터베이스 스키마 자동 생성 애플리케이션 로딩 시점에 자동으로 테이블을 생성 할..

JPA/Base

JPA - 영속성 컨텍스트

- EntityManagerFactory에서 Request가 올 때마다 EntityManager를 생성 -> 내부적으로 데이터베이스 Connection 사용한다. ✍영속성 - JPA를 이해하는데 가장 중요한 용어, 영속성 = "엔티티를 영구 저장하는 환경" 이라는 뜻 (application과 DB사이의 중간 계층). 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태. 영속 : 영속성 컨텍스트에 관리되는 상태. 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태. - EntityManager을 통해 영속성 컨텍스트에 접근. 영속성 컨텍스트와 트랜잭션의 생명 주기를 맞춰주는 것이 중요. 영속성 컨텍스트의 이점 1차 캐시 : 영속 컨텍스트 안에 1차 캐시가 존재. JPA에서 Entity객체를 영속성..

JPA/Base

JPA - introduction

✍ORM은 객체와 RDB 두 기둥위에 있는 기술이다. - JPA Java Persistence API, 자바 진영의 표준 ORM JPA는 인터페이스의 모음, JPA를 구현하는 대표적인 구현체로 Hibernate가 있다. ==> SQL 중심적인 개발 -> 객체 중심의 개발, 생산성, 유지보수 - ORM Object-relational mapping(객체 관계 매핑) 객체는 객체대로, 관계형 DB는 DB대로 설계 - DAO에서 Entity 객체를 보내면, JPA가 이를 분석하고 쿼리문을 생성해줌. 이후 JDBC API를 사용. => 패러다임 불일치 해결 - 패러다임 불일치 해결 상속 - 조회 연관관계, 객체 그래프 탐색 신뢰할 수 있는 엔티티, 계층 JPA 성능 1차 캐시와 동일성 보장 - 같은 트랜잭션 안..

KAispread
'JPA' 카테고리의 글 목록 (4 Page)