@ManyToOne
댓글 : 게시글 = N : 1
앞부분이 해당 클래스의 자리
@ManyToOne(fetch = FetchType.LAZY)
LAZY는 해당 메서드를 통해서 필요하면 가져옴
EAGER는 모든 참조를 가져옴
@JoinColume(name = “board_id”)
참조 하고자 하는 테이블의 PK컬럼이름
DB에 만들어지는 이름으로 해야함
private BoardEntity boardEntity;
참고하고자 하는 테이블을 참고하고자하는 엔티티 전체를 설정
boardId가 컴럼 이름은 boardId로 되어 있지만 타입은 BoardEntity로 되어 있어서 Long 타입 숫자를 넣어줘도 인식을 못하고 service에서 해당 게시글의 boardId를 사용해서 Entity클래스를 가져와서 CommentEntity클래스로 보내줘야 함
그럼 jpa가 알아서 PK값이 id만 입력을 하고 나중에 그 아이디를 이용해서 게시판도 불러오는 것이 가능하다
BoardRepository를 사용해서 해당 boardId의 Entity클래스를 불러와서 toSaveEntity메서드를 실행 할 때 같이 보내준다
@OneToMany(mappedBy = “boardEntity” , fetch = FetchType.LAZY)
private List<CommentEntity> commentEntityList = new ArrayList<>();
EAGER는 한번에 모든 참조를 가져옴
LAZY는 필요할 때 가져오고 메소드를 통해서 가져오고
cascade = CascadeType.ALL
orphanRemoval = true
부모 테이블에서 @OneToMany 어노테이션 안에 설정을 해주면 on delete cascade 로 사용할 수 있다
위 방법 말고 @OnDelete의 방법도 있지만 이 방법은 방식이 다르다고 한다
부모 클래스의 자식 클래스를 불러올 때는 따로 불러오지 않고 부모 클래스의 List클래스를 불러오면 한번에 불러 올 수 가 있다.
같은 수업 듣는 거 맞제?