본문 바로가기

개발중/Java Persistence API (JPA)

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
반응형