

일단 클래스를 다 만들어 놓고 시작 !
[ ReplyJPARepository ]
package shop.mtcoding.blog.reply;
import org.springframework.data.jpa.repository.JpaRepository;
public interface ReplyJPARepository extends JpaRepository<Reply, Integer> {
}
1. 관계 살펴보기
1-1. user는 게시글에 댓글을 여러개(N개) 작성 가능 (user - 1 / reply - N)
1-2. 댓글(N) 1개는 유저 1명이서 만들어 낼 수 있다.
2. 게시글(1)에 댓글(N) 여러개 적을 수 있음. (게시글 - 1 / reply - N)
엔포드 = 1 (프라이머리키) : N (포링키, 드라이빙 테이블)
2. Reply 테이블 생성
package shop.mtcoding.blog.reply;
import jakarta.persistence.*;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.CreationTimestamp;
import shop.mtcoding.blog.board.Board;
import shop.mtcoding.blog.user.User;
import java.sql.Timestamp;
@NoArgsConstructor
@Data
@Table(name = "reply_tb")
@Entity
public class Reply {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String comment;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
@ManyToOne(fetch = FetchType.LAZY)
private Board board;
@CreationTimestamp
private Timestamp createdAt;
@Builder
public Reply(Integer id, String comment, User user, Board board, Timestamp createdAt) {
this.id = id;
this.comment = comment;
this.user = user;
this.board = board;
this.createdAt = createdAt;
}
}

3. 더미 데이터 넣기
insert into reply_tb(comment, board_id, user_id, created_at) values('댓글1', 4, 1, now());
insert into reply_tb(comment, board_id, user_id, created_at) values('댓글2', 4, 1, now());
insert into reply_tb(comment, board_id, user_id, created_at) values('댓글3', 4, 2, now());
insert into reply_tb(comment, board_id, user_id, created_at) values('댓글4', 3, 2, now());
더미를 확실하게 인지하자! (더미를 막 만들지 마라. 시나리오를 생각하고 만들어라!)
게시글 4번에 댓글 3개(ssar, cos, love) 있음. 게시글 3번엔 댓글(cos) 있음.
1번과 2번 게시글에는 댓글 x / 3번 글 - 댓글 1개 / 4번 글 - 댓글 3개
→ 이런 식으로 파악이 되어있어야 함!
Share article