CASCADE 수정

예를 들어 테이블 매핑과 관련된 엔터티의 경우 예: @ManyToOne, @OneToMany

A에 B가 추가되고 A가 삭제되면 B도 삭제되지만 B가 삭제되면 A는 영향을 받지 않습니다.

메인 엔터티인 A의 엔터티에 존재하는 B의 필드에 CASCADE를 추가합니다.

(예)

하나:N // 널빤지 : 답변

@Getter
@Setter
@Entity
public class Board extends Auditable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long boardId;

    @Column(nullable = false)
    private String title;

    @Column(nullable = false)
    private String body;

    @Column
    private Long vote;

    @ManyToOne
    @JoinColumn(name = "MEMBER_ID")
    private Member member;

    @OneToMany(mappedBy = "board", cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
    private List<Answer> answers = new ArrayList<>();
    
}

하나:N //널빤지: 답변

@Getter
@Setter
@Entity
@NoArgsConstructor
public class Answer extends Auditable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long answerId;

    @Column(length = 50)
    private String title;

    @Column
    private String body;

    @ManyToOne
    @JoinColumn(name = "MEMBER_ID")
    private Member member;

//    @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.REMOVE})
    @ManyToOne
    @JoinColumn(name = "BOARD_ID")
    private Board board;