: cascade = CascadeType.ALL,orphanRemoval = true
//부모 지워지면 자식도 지워짐
@OneToMany(mappedBy = "memberEntity", cascade = CascadeType.ALL,orphanRemoval = true,fetch = FetchType.LAZY)
private List<CommentEntity> commentEntityList = new ArrayList<>();
@OneToMany(mappedBy = "memberEntity", cascade = CascadeType.ALL,orphanRemoval = true,fetch = FetchType.LAZY)
private List<BoardEntity> boardEntityList = new ArrayList<>();
: cascade = CascadeType.PERSIST, orphanRemoval=false
//on delete set null을 할 때 - preRemove() 도 같이 써야함
@OneToMany(mappedBy = "memberEntity", cascade = CascadeType.PERSIST,orphanRemoval = false,fetch = FetchType.LAZY)
private List<CommentEntity> commentEntityList = new ArrayList<>();
@OneToMany(mappedBy = "memberEntity", cascade = CascadeType.PERSIST,orphanRemoval = false,fetch = FetchType.LAZY)
private List<BoardEntity> boardEntityList = new ArrayList<>();
// 부모를 지우는데 자식도 지우기 싫을 때
@PreRemove
private void preRemove(){
System.out.println("MemberEntity.preRemove");
boardEntityList.forEach(board -> board.setMemberEntity(null));
//아래랑 위랑 같음
// for(BoardEntity board:boardEntityList){
// board.setMemberEntity(null);
// }
commentEntityList.forEach(comment ->comment.setMemberEntity(null));
}
}