일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 도메인 주도 개발
- nginx설정
- ddd
- Push
- gcm 푸시 번역
- JPA
- 푸시
- GCM
- GCM 번역
- 웹사이트최적화기법
- 웹사이트성능
- 성능
- php
- 자바스크립트
- notification
- 푸시 번역
- APNS
- 카프카
- Design Pattern
- kafka
- graphql
- nginx설치
- nginx
- 페이스북 번역
- 카프카 트랜잭션
- Java
- 웹사이트 성능
- 디자인패턴
- git
- Today
- Total
목록IT 책/JPA (ORM 표준 JPA 프로그래밍) (12)
간단한 개발관련 내용
7.1 상속 관계 매핑supertype subtype Relationship각각의 테이블로 변환조인전략통합 테이블로 변환단일 테이블 전략서브타입 테이블로 변환구현 클래스마다 테이블 전략7.1.1 조인 전략부모테이블의 키를 받아서 기본키 + 외래키 복합키를 갖게 된다장점테이블이 정규화된다외래키 참조 무결성 제약 조건을 사용할 수 있다저장 공간을 효율적으로 사용할 수 있다단점조회할 때 조인이 많이 사용되므로 성능이 저하될 수 있다조회 쿼리가 복잡하다데이터를 등록할 때 INSERT SQL을 두 번 실행한다.7.1.2 단일 테이블 전략구분칼럼(DTYPE)으로 어떤 자식 데이터가 저장되었는지 구분한다장점조인이 필요없으므로 일반적으로 조회 성능이 빠르다조회 쿼리가 단순하다단점구분 칼럼을 꼭 사용해야 한다따라서 @D..
다중성다대일단방향, 양방향일대다단방향, 양방향일대일주 테이블 단방향, 양방향대상 테이블 단방향, 양방향다대다단방향, 양방향단방향, 양방향연관관계의 주인연관관계의 주인은 mappedBy 속성을 사용하지 않는다 6.1 다대일6.1.1 다대일 단방향 [N:1]6.1.2 다대일 양방향 [N:1, 1:N]양방향은 외래 키가 있는 쪽이 연관관계의 주인이다양방향 연관관계는 서로를 참조해야 한다6.2 일대다일대다는 다대일의 반대로 Collection, List, Set, Map 중에 하나를 사용해야 한다6.2.1 일대다 단방향 [1:N]한 팀이 여러 회원을 참조하는데 회원은 팀을 참조하지 않을 때일대다 단방향 관계를 매핑할 때는 @JoinColumn을 명시해야 한다. 그렇지 않으면 JPA는 연결 테이블을 중간에 두고 ..
객체의 참조와 테이블의 외래 키를 매핑하는 것이 이 장의 목표다방향(Direction)다중성(Multiplicity)연관관계 주인(Owner)5.1 단방향 연관관계회원과 팀회원과 팀이 있다회원은 하나의 팀에만 소속될 수 있다회원과 팀은 다대일 관계다객체 연관관계테이블 연관관계객체 연관관계와 테이블 연관관계의 가장 큰 차이참조는 단방향이라 양방향을 하려면 서로 참조해야 한다. 그러나 이것은 양방향 관계가 아니라 서로 다른 단방향 관계 2개이다객체 연관관계 vs 테이블 연관관계 정리객체는 참조로 연관관계테이블은 외래 키를 사용하여 조인으로 연관관계5.1.1 순수한 객체 연관관계객체 그래프 탐색이 가능5.1.2 테이블 연관관계테이블은 외래 키를 사용하여 조인으로 연관관계5.1.3 객체 관계 매핑회원과 팀은 @..
4.1 @Entity기본생성자는 필수다파라미터가 없는 public 또는 protected 생성자로 선언.private은 JPA가 접근할 수 없기 때문에 안된다final 클래스, enum, interface, inner 클래스에는 사용할 수 없다저장할 필드에 final을 사용하면 안된다 💡JPA는 리플렉션을 사용하여 데이터베이스에서 조회된 데이터를 기반으로 객체를 생성합니다. 리플렉션으로 객체를 생성할 때는 매개변수가 없는 생성자를 호출할 수밖에 없습니다. 따라서 파라미터가 없는 생성자가 없으면 JPA는 해당 엔티티 클래스를 인스턴스화할 수 없습니다.4.2 @TablenamecatalogschemauniqueConstraints4.3 다양한 매핑사용@Enumerated : java enum@Tempora..
2장 JPA 시작 2.1 이클립스 설치와 프로젝트 불러오기2.2 H2 데이터베이스 설치2.3 라이브러리와 프로젝트 구조2.3.1 메이븐 사용과 라이브러리 관리2.4 객체 매핑 시작2.5 persistence.xml 설정2.6 애플리케이션 개발2.6.1 엔터티 매니저 설정엔터티 매니저 팩토리 생성설정 정보를 읽어서 JPA를 동작시키기 위한 기반 객체를 만들고 JPA 구현체에 따라서는 데이터베이스 커넥션 풀도 생성하므로 엔터티 매니저 팩토리를 생성하는 비용은 아주 크다. 따라서 엔터티 매니저 팩토리는 애플리케이션 전체에서 딱 한 번만 생성하고 공유해서 사용해야 한다.앤터티 매니저 생성엔터티 매니저 팩토리에서 엔터티 매니저를 생성한다. JPA의 기능 대부분은 이 엔터티 매니저가 제공한다. 대표적으로 엔터티 매..
JPA를 사용하기 전에 JDBC-API를 사용하거나 MyBatis를 사용하던 시절을 떠올리면 비즈니스를 구성하는 DB는 정해져 있는데, 데이터를 구성하기 위한 수많은 매핑 모델과 쿼리 작업을 잊을 수가 없습니다.특히 수많은 조회쿼리와 개별 상황에 따른 DAO객체 답게 모델링 할 수록 매핑 작업만 늘어나게되고 객체 모데은 점점 데이터 중심의 모델로 변해 갔던 기억이 있는데요.JPA는 이러한 단점들을 극복하게 해 주는 Java Persistence API로서 자바 애플리케이션에서 관계형 데이터베이스를 사용할 수 있도록 돕는 자바 표준 API입니다. 주로 객체와 데이터베이스 간의 매핑을 관리하며, ORM(Object Relational Mapping)을 지원하는 것이 주요 기능입니다.ORM을 통해 데이터베이스..