일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 코딩테스트
- 커밋 컨벤션
- querydsl
- spring jpa
- 멋쟁이사자처럼
- 스프링부트 쇼핑몰 프로젝트
- 부트캠프
- VB
- break-label
- 값 타입
- GitFlow
- spring
- 알고리즘
- DOCS
- Git
- responsepart
- 연관관계
- 테킷
- springboot
- PDF병합
- 체인호출
- orm
- 반복문 탈출
- Hibernate
- PDFBOX
- Java
- 제작기
- JPA
- 프로그래머스
- Visual Basic
- Today
- Total
목록Hibernate (8)
섭섭한 개발일지
Git 브런치 바로가기 CHAPTER 09 [ 값 타입 ] 과정 요약 JPA의 데이터 타입을 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있다. 엔티티 타입은 @Entity로 정의하는 객체이고, 값 타입은 int, Integer, String와 같이 단순히 값으로 사용하는 자바의 기본 타입을 말한다. 엔티티 객체는 식별자를 통해 계속해서 추적이 가능하지만 값 타입은 그렇지 않다. 값 타입 기본값 타입 자바 기본 타입 int, long 래퍼 클래스 Integer, Long) String 임베디드 타입 복합 값 타입 : JPA에서 사용자가 직접 정의한 값 타입 컬렉션 값 타입 : 하나 이상의 값 타입 기본값 타입 @Entity public class Member { @Id @GeneratedValue ..
Git 브런치 바로가기 CHAPTER 08 [ 프록시와 연관관계 관리 ] 주요 과정 주제 내용 프록시와 즉시로딩, 지연로딩 객체는 객체그래프를 통해 데이터를 조회할 수 있다. 다만 실제 데이터는 데이터베이스에 저장되어 있으므로 테이블의 데이터를 조회해야 객체 그래프로 탐색이 가능하다. JPA는 이러한 문제를 프록시라는 기술을 사용하여 연관된 데이터를 실제 사용하는 시점에 데이터베이스에 조회할 수 있게 해두었는데 이 기능은 자주 사용하는 객체들에 대해서 조인을 통해 데이터를 미리 조회하는 것을 가능케 한다. 영속성 전이와 고아객체 연관된 객체를 함께 저장하거나 삭제할 수 있는 기능 프록시 엔티티를 조회할 때 연관관계의 엔티티들이 항상 사용되는 것이 아니다. 예로 회원 예제를 사용할 때 비즈니스 로직에 따라..
Git 브런치 바로가기 CHAPTER 07 [ 고급 매핑 ] 주요 과정 주제 내용 상속 관계 매핑 객체의 상속 관계를 데이터베이스에 어떻게 매핑하는지 다룬다. @MappedSuperclass 등록일, 수정일과 같이 여러 엔티티에서 공통으로 사용하는 매핑 정보만 상속 받고자 할 때 사용한다. 복합 키와 식별 관계 매핑 데이터베이스의 식별자가 있을 때 매핑하는 방법, 데이터베이스의 식별관계와 비식별 관계를 다룬다. 조인테이블 연관관계를 관리하는 연결테이블을 매핑하는 방법을 다룬다. 엔티티 하나에 여러 테이블 매핑하기 하나의 엔티티에 다수의 테이블을 매핑하는 방법을 다룬다. 상속 관계 매핑 관계형 데이터베이스에는 객체지향의 상속과 같은 개념은 없고 슈퍼타입 서브타입 관계 라는 것이 객체지향의 상속의 개념과 가..
git : https://github.com/seop-kim/Java_JPABook/tree/ch06-jpa CHAPTER 06 [ 다양한 연관관계 매핑 ] 다대일 다대일 연관관계에서는 항상 다 쪽이 외래키를 갖는다. 멤버와 팀이 있다면 멤버가 외래키를 관리한다. 단방향 단방향은 외래키를 관리하는 객체 외의 상대 객체에서 외래키 관리 객체를 조회하지 못하는 경우 단뱡항이다. 양방향 단방향의 반대로 상대 객체에서도 주인 객체를 조회할 수 있는 경우를 말한다. 다이어그램 객체 연관관계 다이어그램에서 실선으로 된 화살표는 연관관계의 주인인다. 점섬은 반대로 주인이 아닌 객체이다. 일대다 일대다 관계는 다대일 관계의 반대이다. 일대다 관계에서는 엔티티를 하나 이상 참조할 수 있으므로 자바의 컬렉션, List, ..
git : https://github.com/Dev-Chaee/Java_JPABook/tree/ch05-jpa CHAPTER 05 [ 연관관계 매핑 기초 ] 엔티티들은 대부분 다른 엔티티와 연관관계가 있다. 주문 엔티티는 어떤 상품을 주문했는지 알기 위해 상품 엔티티와 연관관계가 있으며 이외에도 엔티티들은 서로 필요에 의한 연관관계가 있다. 객체와 관계형 데이터베이스에서 이러한 엔티티를 관계를 짓는 부분에서 패러다임 불일치가 발생한다. 객체는 다른 객체를 참조로 관계형 데이터베이스는 외래 키를 사용하여 연관관계를 맺는다. 이러한 패러다임 불일치를 매핑하는 것이 이번 장에서의 학습 목표다. 핵심키워드 방향 단방향 회원과 팀이 관계가 있을 때 회원만이 팀을 바라보는 것을 단방향 관계라고 한다. 이때 회원이 ..
git : https://github.com/Dev-Chaee/Java_JPABook/tree/ch04-jpa CHAPTER 04 [ 엔티티 매핑 ] @Entity : JPA를 사용해 테이블과 매핑할 클래스는 반드시 이 어노테이션을 사용해야 한다. 속성 name : 사용할 엔티티 명을 지정한다. 설정하지 않은 경우 클래스명으로 정해진다. 기본생성자는 필수, 저장할 필드에 final을 사용하면 안된다. @Table : 엔티티와 매핑할 테이블을 지정하는 어노테이션이다. 생략할 경우 매핑한 엔티티 이름을 테이블 이름으로 사용한다. 속성 name : 매핑 테이블 이름 catalog : catalog 기능이 있는 데이터베이스에서 catalog 를 매핑한다. schema : schema 기능이 있는 데이터베이스에서..
git : https://github.com/Dev-Chaee/Java_JPABook/tree/ch03-jpa CHAPTER 03 영속성 상태는 jpa가 객체를 관리하는 상태이다. persist를 한 객체는 영속성 객체가 되며 JPA가 관리를 한다. 객체만 생성을 한 경우에는 비영속성이라고 칭한다. 준영속과 삭제 상태도 있다. JPA에서 중요하게 봐야하는 부분은 1차 캐시 영역이라고 생각한다. 1차 캐시 영역이란? JPA가 관리하는 영속성 객체의 경우 1차 캐시영역에 저장을 한다. 이는 쉽게 생각해서 MAP이라고 생각을 하면 된다 만약 persist로 영속성 객체로 만든 경우 1차 캐시 영역에 데이터를 저장한다. 이를 조회할때 JPA는 먼저 1차 캐시 영역에서 데이터를 조회한다. 찾는 데이터가 있을 경우..
CHAPTER 01 JPA는 앱을 개발하는 과정에서 반복적인 SQL을 작성하는 것을 해결해준다. 관계형 데이터베이스를 객체지향의 관점에서 사용할 수 있도록 해준다. 관계형 데이터베이스는 데이터를 중심으로 구조화가 되어 있고 집합적인 사고를 요구한다. 객체지향에서 사용하는 추상화, 상속, 형성과 같은 개념도 없다. 객체와 관계형 데이터베이스는 지향하는 목적이 서로 달라 둘의 기능과 표현 방법이 다르다. 이것을 객체와 관계형 데이터베이스의 패러다임 불일치 문제라고 한다. JPA는 객체의 상속으로 발생하는 데이터베이스와의 패러다임 불일치 문제를 개발자 대신 해결해 준다. 객체는 다른 객체와 연관관계를 가질때 참조를 하지만 데이터베이스는 외래키를 사용하여 관계를 맺는다. 이러한 패러다임 불일치는 객체지향 모델링..