728x90
* 내가 작성한 게시글 목록 조회 구현
* DB 구조 변경
- 게시물 삭제 시 게시물에 달려있던 댓글들도 같이 삭제되어야함
- https://blog.woniper.net/264
@Getter
@Setter
@NoArgsConstructor
@Entity
public class Posting extends Timestamped {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long postingId; // 게시글 고유 번호
@Column(nullable = false)
private String userName; // 게시글 작성자의 닉네임, 중복 허용X
@Column(nullable = false)
private String title; // 게시글 제목
@Column(nullable = false)
private String content; // 게시글 내용
@Column(nullable = false)
private String imageFile; // 메인페이지에서 보여질 게시글의 썸네일 이미지(유저가 게시글에 등록한 이미지)
@OneToMany(mappedBy = "post", fetch = FetchType.LAZY,cascade = CascadeType.ALL)
private List<Comment> comments;
}
@OneToMany(mappedBy = "post", fetch = FetchType.LAZY,cascade = CascadeType.ALL)
private List<Comment> comments;
mappedBy의 "post"는 Comment 엔티티의 컬럼으로 정의되어있음
Comment 엔티티와 연관을 지어줌
@Setter
@Getter // get 함수를 일괄적으로 만들어줍니다.
@NoArgsConstructor // 기본 생성자를 만들어줍니다.
@Entity // DB 테이블 역할을 합니다.
public class Comment extends Timestamped{
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long id;
// 반드시 값을 가지도록 합니다.
@Column(nullable = false)
private String userName;
@Column(nullable = false)
private String comment;
@Column(nullable = false)
private Long postingId;
@ManyToOne(fetch = FetchType.LAZY,cascade =CascadeType.ALL )
@JoinColumn(name = "postId")
private Posting post;
}
@ManyToOne(fetch = FetchType.LAZY,cascade =CascadeType.ALL )
@JoinColumn(name = "postId")
private Posting post;
post 변수는 Posting 엔티티의 commentList 컬럼과 연관되어있음
name = "postId" 는 Join한 컬럼의 이름을 정의시켜주는 것 뿐임
연관관계를 짓는 행위와 관련 없음
CASCADE를 조건 걸어주면서 게시물이 삭제될 때 댓글도 같이 삭제되도록 설정함
* 알고리즘 문제 풀기
'항해99 3기' 카테고리의 다른 글
[TIL] 2021.10.27 파이널 프로젝트 진행중 (0) | 2021.10.28 |
---|---|
[TIL] 2021.10.22 프로젝트 제출날 (0) | 2021.10.22 |
[TIL] 2021.10.20 클론 프로젝트 진행중 (0) | 2021.10.21 |
[TIL] 2021.10.19 클론 프로젝트 진행중 (0) | 2021.10.21 |
[TIL] 2021.10.18 클론코딩 프로젝트 시작 (0) | 2021.10.18 |