Search

javax.persistence 어노테이션 창고

@ElementCollection

Element 객체의 컬렉션 집합이다.
Element 로는 기본 타입(String, Long 등) 과 Embeddable 로 선언된 객체가 될 수 있다.
부모 Entity Id와 추가 컬럼(basic or embedded 타입)으로 구성된다.
기본적으로 값 타입 컬렉션에 변경 사항(저장, 삭제)이 발생하면, 소유하는 엔티티와 연관된 모든 데이터를 삭제하고, 현재 남아있는 값을 모두 다시 저장한다.

@CollectionTable

@Table 과 같이 Collection 으로 선언된 변수에 대한 테이블을 만들 때 사용
연관 객체에 의존적이기때문에 옵션으로는 joinColumns 와 foreignKey 가 있다.

@AttributeOverride

column 명을 정의할 수 있다.
@Embedded private Code code; @Embedded private Code teamCode;
Java
복사
Embedded 객체를 사용할 때 해당 객체를 여러번 사용하면 column 명이 중복으로 들어갈 수 있다.
Code 객체 내부의 변수 명은 value 라서 code columnteamCode column 에 공통적으로 적용되어 예외가 발생
@Embedded @AttributeOverride(name = "code", column = @Column(name = "code", nullable = false) private Code code; @Embedded @AttributeOverride(name = "code", column = @Column(name = "team_code", nullable = false) private Code teamCode;
Java
복사

@MappedSuperclass

부모 클래스가 엔티티가 아닐 때 상속을 해주어야 하는 경우
보통 BaseEntity 라는 클래스로 사용