Wanna be Brilliant Full-Stack Developer

SpringBoot Blog 만들기 Reply 테이블 생성 본문

Back-End/블로그 만들기 With SpringBoot

SpringBoot Blog 만들기 Reply 테이블 생성

Flashpacker 2023. 2. 15. 19:52


몇가지 안한것들이 있어서 추가를 하려고 한다.

게터 세터가 없기때문에 User클래스에 

@Data
@NoArgsConstructor 빈 생성자
@AllArgsConstructor 전체 생성자
@Builder // 빌더 패턴 

이 세가지를 추가 해준다.  빌더는 나중에 사용해보면 먼지 자연스럽게 알게 될것이다!

 

답변 테이블을 만들때는 primarykey가 있고 

내용은 200자 정도면 된다. 답변은 제목이 필요 없다.

 

그리고 누가 어느 테이블에 

어느 게시글에 있는 답글인가? 연관관계가 필요하다.

이 답변은 어느게시글에 있는지 모르니까 연관관계를 맺어줘야한다.

@JoinColumn(name = "boardId")
private Board board; 

이렇게만 하면 boardId라는 컬럼 이름만 정해진거지 연관관계는 모른다

 

하나의 게시글에는 여러개의 답글이 있을 수 있다. 

그러면 여러개가 앞에 나온다 Many(reply)ToOne(board)

여러개의 답변은 하나의 게시글에 존재할 수 있다.

만약에 OneToOne이라고 하면 하나의 게시글에는 하나의 답변만 올수 있다는것인데?

One(답변)ToMany(게시글)라고 하면? 여러개의 게시글에 하나의 답변만 올 수있다는 말이 안된다.

 

포린키가 하나 더필요하다.

private User user; 

왜냐하면 이 답변을 누가 적었는지도 알아야한다.

ManyToMany가 될수있고 ManyToMany가 될수도 있는데

하나의 유저는 여러개의 답변을 달 수 있다.

하나의  답글이 있는데 여러명이 쓸 수는 없다.

@ManyToOne Many = reply One = user

여러개의 답변을 하나의 유저가 쓸 수있다.

 

그다음에 작성된 시간을 올리기 위해서

@CreationTimestamp
private Timestamp createDate; 도 해야한다.

boardId와 userId는 인트값으로 만들어졌다.

둘다 usertable의 id를 참조하기 때문이다. 

그리고 포린키도 만들어졌다. 

 

reply 테이블의 boardId는 board테이블의 id를 참조하고 있다.

reply 테이블의 userdId는 user테이블의 id를 참조하고 있다.

 

다음에는 이렇게만 만든다고 끝나지 않는다.

연관관계의 주인에 대해 다음에 알아보자