JPA - 어노테이션 정리

2021. 6. 25. 14:07·개발중/Java Persistence API (JPA)
728x90
반응형

 

JPA 책을 읽다가 기록하고 내 것으로 만들고 싶은 부분 기록 😏

 


어노테이션 

 

@JoinColumn

외래키를 매핑 할 떄 사용한다.

 

@Column

객체 필드를 테이블 컬럼에 매핑 한다.

 

@Enumerated

자바의 enum 타입을 매핑할 때 사용.

 

@Temporal

날짜 타입을 매핑할 때 사용.

 

@Lob

데이터 베이스 BLOB, CLOB 타입과 매핑한다.

 

더보기

@LOB 에는 지정할 수 있는 속성이 없다.

대신에 매핑하는 필드 타입이 문자면 CLOB 으로 매핑하고 나머지는 BLOB 으로 매핑한다.

 

- CLOB : String, char[], java.sql.CLOB

- BLOB : byte[], java.sql.BLOB

 

@Transient

이필드는 매핑하지 않는다.

따라서 데이터 베이스에 저장하지 않고 조회 하지도 않는다.

객체에 임시로 어떤 값을 보관하고 싶을 때 사용한다.

 

@Accss

JPA 가 엔티티 데이터에 접근하는 방식을 지정한다.

 

@ManyToOne

다대일 관계를 나타낸다. 연관관계를 매핑할 때 이렇게 다중성을 나타내는 어노테이션을 필수로 사용해야 한다.

 

@OneToMany

일대다 관계를 나타낸다.

 

@OneToMany(mapperBy="")

Mapper by 의 속성 값은 연관관계의 주인을 명시해준다.
Mapper by 의 속성은 항상 OneToMany 에만 설정할 수 있다.

ManyToOne 는 연관 관계에 주인이 될 수 없으므로 설정 할 수 없다

 

@JoinColumn(name="BINSOO_ID")

조인 컬럼은 외래키를 매핑할 때 사용한다.

name 속성에는 매핑할 외래 키 이름을 지정한다.

생략도 가능하다.

 

@Inheritance

상속 매핑의 부모 클래스에 정의한다.

 

EX

더보기

@Inheritance(strategy = Inheritance.Type.JOINED)

 

@DescriminatorColumn

부모 클래스에 구분 컬럼을 지정한다.

 

@DescriminatorValue

엔티티를 저장할 때 구분 컬럼에 입력 할 값을 지정한다.

 

@PrimaryKeyjoinColumn

기본키 컬럼명을 변경하고 싶을 때 사용한다.

 

@AttributeOverrides

@AttributeOverride

부모로부터 물려받은 매핑 정보를 재정의 할 때 사용한다.

 

@AssociationOverrides

@AssociationOverride

부모로부터 물려받은 연관 관계를 재정의 할 때 사용한다.

 

 

728x90
반응형
저작자표시 (새창열림)

'개발중 > Java Persistence API (JPA)' 카테고리의 다른 글

JPA - 값 타입 컬렉션  (0) 2021.06.30
JPA - 즉시 로딩과 지연 로딩  (0) 2021.06.28
JPA / 프록시 알아보기  (0) 2021.06.28
식별 관계와 비식별 관계 구분  (0) 2021.06.25
JPA / 객체 간 연관관계 매핑 - 기록  (0) 2021.06.25
'개발중/Java Persistence API (JPA)' 카테고리의 다른 글
  • JPA - 즉시 로딩과 지연 로딩
  • JPA / 프록시 알아보기
  • 식별 관계와 비식별 관계 구분
  • JPA / 객체 간 연관관계 매핑 - 기록
Binsoo
Binsoo
내 트러블 슈팅
  • Binsoo
    정수빈 기술블로그임.
    Binsoo
  • 전체
    오늘
    어제
    • 빈수 개발자 개발 일기 (939)
      • 개발중 (635)
        • Spring Boot (95)
        • Spring Security (2)
        • Spring Batch (6)
        • Spring Boot & Redis (13)
        • Java Persistence API (JPA) (28)
        • Web (42)
        • Rest Api (7)
        • Spring Concurrency Control (3)
        • Redis (8)
        • Kubernetes (k8s) (4)
        • MYSQL (35)
        • AirFlow (15)
        • Docker (2)
        • Git (22)
        • Linux (9)
        • JSON Web Tokens (JWT) (4)
        • Troubleshooting (88)
        • Swagger (0)
        • Vue.js (52)
        • Java (74)
        • html (12)
        • C (5)
        • jQuery (15)
        • JavaServer Pages (JSP) (17)
        • Arduino (1)
        • JavaScript (35)
        • Amazon Web Services (AWS) (11)
        • Algorithm (9)
        • 참고 기능 (18)
        • mongo (2)
      • PROJECT (27)
        • 스프링부트+JPA+몽고 API 개발 (3)
        • MINI (2)
        • 게시판 (3)
        • vue 프로젝트 (1)
        • JPA 사이드 프로젝트 기록 (17)
      • TEAM STUDY (156)
        • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (8)
        • 한 권으로 읽는 컴퓨터 구조와 프로그래밍 (12)
        • NAVER DEVELOPER (4)
        • LINUX (23)
        • PYTHON (19)
        • SERVER (8)
        • 알고리즘 코딩 테스트 스터디 (31)
        • 쿠버네티스 (40)
        • 대세는 쿠버네티스 [초급~중급] (11)
      • BOOK (0)
      • 자격증 (61)
        • 리눅스 1급 - 필기 기록 (19)
        • 네트워크 관리사 (2)
        • 네트워크 관리사 2급 - 실기 기록 (21)
        • 네트워크 관리사 2급 - 필기 기록 (16)
        • 정보처리 (2)
      • 직장인 대학원 (18)
        • 기록 (3)
        • 캐글 스터디 (3)
        • R (12)
      • 논문 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크 관리사 2급
    파이썬 알고리즘
    git
    BackendDevelopment
    네트워크 관리사
    java
    네트워크 관리사 실기
    redis
    Git 저장소
    네트워크 관리사 2급 실기
    쿠버네티스 스터디
    jpa
    스프링
    리눅스 1급 요약
    파이썬
    리눅스 마스터 1급
    VUE
    쿠버네티스
    springboot
    네트워크 관리사 요약
    리눅스 마스터 1급 정리
    리눅스 마스터 1급 요약
    알고리즘
    네트워크 관리사 학점
    리눅스 마스터 요약
    REST API
    리눅스 마스터
    네트워크 관리사 자격증
    docker
    Spring
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Binsoo
JPA - 어노테이션 정리
상단으로

티스토리툴바