좋아요 기능을 구현하기 전에 엔티티를 설계하자!
들어가며
이번 포스팅까지 게시판 만들기 프로젝트에서 댓글 기능까지 구현해 봤다. 이번 포스팅부터는 게시글의 좋아요 기능을 추가할 예정입니다. 그전에 먼저 엔티티 설계와 연관 관계 매핑을 진행해 보도록 하겠습니다.
사전 준비
만약 게시판 프로젝트를 하시려는 분은
이전포스팅 따라 해 만들어주시기 바랍니다!
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 댓글 삭제 구현 [12-4]
작성한 댓글을 삭제하는 기능을 구현해 보자! 들어가며 이번 포스팅에서는 이전까지 구현했던 댓글을 수정하고 작성을 했다면 이번에는 삭제하는 기능을 만들어보도록 하겠습니다. 사전 준비
back-stead.tistory.com
전체 코드는 깃에 올려두었습니다.
GitHub - CHISANW/message-board
Contribute to CHISANW/message-board development by creating an account on GitHub.
github.com
E-R 다이어그램
이번 포스팅부터는 Board_Like_check라는 엔티티를 추가해서 좋아요 기능을 설계해 보도록 하겠습니다.
엔티티 및 연관관계 매핑
Board_Like_check.class
@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Board_Like_check {
@Id@GeneratedValue
@Column(name = "board_like_Id")
private long id; // 프라이머리 키 값
private boolean like_check; // 좋아요 했는지 확인하는 필드
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "board_Id")
private Board board;
@OneToOne()
@JoinColumn(name = "member_Id")
private Member member;
}
- board: Board 엔티티와 많은-한 (@ManyToOne) 단방향 매핑을 설정하여 여러 게시글에 대한 좋아요를 허용합니다.
- member: Member 엔티티와 단방향 매핑을 설정하여 한 게시글에 대해 사용자 한 명만이 좋아요를 할 수 있도록 합니다.
- like_check: 좋아요 여부를 나타내는 필드입니다.
Board.class에 좋아요 수를 저장하는 boardLike 필드를 하나 추가해 줍니다.
private Integer boardLike;
Dto
직접 엔티티를 사용해 데이터를 사용하지 말고 Dto를 사용해 데이터를 주고받을 예정입니다.
BoardLikeDto.class
@Data
public class BoardLikeDto {
private boolean like_check;
}
Dto를 추가해 줍니다 그리고 BoardDto.class 안에 BoardLikeDto 필드를 추가해 줍니다.
private BoardLikeDto boardLikeDto;
실행
이제 jpa가 정상적으로 만들어지는지 확인해봐야 합니다. application.yml에서 ddl-auto를 create로 변경하여 실행합니다.
원하는 4개의 엔티티가 생성된 것을 확인해볼수 있습니다.
모두 정상적으로 생성된것을 볼 수 있다.
다음으로
이번에는 좋아요 기능을 구현하기 전에 먼저 엔티티를 설계를 해봤습니다.
다음포스팅에서는 본격적으로 좋아요 기능을 구현해 보겠습니다.
부족한 점은 댓글로 남겨주시면 감사하겠습니다!
'Spring > 게시판만들기' 카테고리의 다른 글
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 게시글 정렬처리하기 [14] (1) | 2024.02.17 |
---|---|
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 좋아요 기능 구현 [13-2] (0) | 2024.02.17 |
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 댓글 삭제 구현 [12-4] (1) | 2024.02.17 |
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 댓글 수정 구현 [12-3] (1) | 2024.02.17 |
[SpringBoot] 스프링부트 - 무작정 (REST API)CRUD 게시판 만들기 댓글 등록 구현 [12-2] (1) | 2024.02.16 |