JPA 조인 테이블 전략 삭제

장원재·2024년 6월 23일
0

jpa

목록 보기
11/11

필자는 프로젝트 진행중에서 조인 테이블 전략을 사용했을 때 연관관계를 부모 테이블, 자식 테이블 중 어느 테이블에 매핑 시켜야 하지 라는 의문이 있었다. 결론부터 말하면 부모 테이블에 다른 테이블과의 연관관계를 매핑시켜야 한다. ex) board 라는 부모 테이블에 comment 테이블과 매핑 시킨다. 그렇지 않으면 board 를 상속받은 AdminBoard 라는 테이블이 있고, 이 AdminBoard 테이블을 삭제할 때 연관된 comment 테이블 데이터가 삭제되지 않는다.


@Entity
@Getter
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn
public class Board extends BaseBoardEntity {

    @Id @GeneratedValue
    @Column(name = "board_id")
    private Long id;

    //관계 매핑
    @OneToMany(cascade = CascadeType.ALL)
    private List<Comment> comments = new ArrayList<>();
}
  • 부모 테이블로써 공통적으로 댓글 엔티티와 연관관계를 매핑시킴
@Entity
@NoArgsConstructor
@Getter
@Table(name = "admin_board")
public class AdminBoard extends Board {

    private String content;

    public AdminBoard(String title, String content) {
        super.title = title;
        this.content = content;
    }

    public Long getId() {
        return super.getId();
    }

    @OneToMany(mappedBy = "adminBoard", cascade = CascadeType.ALL)
    private List<AdminUploadFile> adminUploadFiles = new ArrayList<>();
}
  • 자식 테이블로써 AdminBoard 와 직접적으로 연관된 엔티티만 연관관계를 매핑한다. ex) 어드민 게시판의 업로드 파일 테이블과 관계 매핑을 시킴
profile
데이터 분석에 관심있는 백앤드 개발자 지망생입니다

0개의 댓글

관련 채용 정보