승튜의 코멘트들
실무에서는 fk를 쓰지 않아
테이블끼리 연결을 시키면 변경할때 문제가 생겨
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user; // -> 객체들간의 연관관계를 맺겠다. Post <-> User FK로 엮인 관계입니다.
@Column(name="user_id") // 개발자가 FK라는 것을 알고 있음 JPA는 모르고
private String userId;
게시글 - 댓글
댓글 입장에서 게시글 꼭 있어야함
게시글 입장에서는 댓글 없어도 됨→그럼 무적권 Comment 안에 Post / Post 안에 Comemnt 없어도됨
@ManyToOne → 반대쪽에 OneToMany 안만들어도됨
하지만 @OneToMany 쓴다 → 반대쪽에 @ManyToOne꼭 있어야됨
그럼 게시글에서 댓글은 어케 찾아오냐?
→ CommentRepository만들어서 List<Comment> findAllByPostId(Long postId);
→ 이거랑 post.getComments()랑 똑같애
게다가 댓글 만개달렸어 → 그 게시글 불러오면 댓글 만개 다 가져옴 → 하지만 CommentRepository에서 불러온다? 그럼 페이징도 할수 있어
코멘트 작성할때 post는 무적권 필요해.
get해서 add 하면 안돼 → 불변객체랑 상관 있음 → 포스트가 갖고있는 값을 외부에서 내가 마음대로 바꿔버린거임 → setter를 쓴것과 다름이 없다.
연관관계 편의 메서드 → 연관관계가 있을때에만 발생할거다
연관관계를 맺으면 당연히 상대에게 나의 존재를 알려주어야한다.
패키지를 나눈것은 연관관계를 갖지 않겠다는 의미이다. 나눌거면 확실하게 의도를 만들도록
'내일배움캠프 > TIL' 카테고리의 다른 글
2023/1/1 포스트맨에 토큰값 세팅하기 (0) | 2023.01.03 |
---|---|
2022.12.28 (1) | 2022.12.28 |
2022.12.19 (0) | 2022.12.19 |
2022.12.16 (0) | 2022.12.16 |
2022.12.15 (0) | 2022.12.15 |