JVM/JPA

@SecondaryTable, @SecondaryTables

kyoulho 2023. 6. 19. 14:33

하나의 엔티티에 필드를 여러 테이블에 나누어 매핑할 때 사용한다.

테이블당 엔티티를 각각 만들어서 일대일 매핑하는 것을 권장한다.

이 방법은 항상 두 테이블을 조회하므로 최적화하기 어렵다.

 

@SecondaryTable

속성 기능 기본값
name 매핑할 다른 테이블의 이름  
pkJoinColumns 매핑할 다른 테이블의 기본 키 컬럼 속성  

 

예제 코드

@Entity
@Table(name = "BOARD")
@SecondaryTable(name = "BOARD_DETAIL",
        pkJoinColumns = @PrimaryKeyJoinColumn(name = "BOARD_DETAIL_ID"))
public class Board {
    @Id
    @GeneratedValue
    @Column(name = "BOARD_ID")
    private Long id;

    private String title;
    @Column(table = "BOARD_DETAIL")
    private String content;
}

 

@SecondaryTables

@SecondaryTables({
	@SecondaryTable(name = "BOARD_DETAIL"),
    @SecondaryTAble(name = "BOARD_FILE")
})

'JVM > JPA' 카테고리의 다른 글

영속성 전이, 고아 객체  (0) 2023.06.23
즉시 로딩, 지연 로딩, 프록시  (0) 2023.06.23
@JoinTable  (0) 2023.06.19
@MapsId  (0) 2023.06.18
@MappedSuperclass  (0) 2023.06.17