728x90
반응형
Post와 Reply 도 1: N 관계이다. 연관 관계를 만들어 줘야 한다.
PostEntity 수정
@OneToMany(mappedBy = "post")
private List<ReplyEntity> replyList = List.of();// 빈 리스트를 기본으로
PostService 수정
//답변 같이 보여주기.
// @OneToMany를 통해 자동으로 list를 보내 주므로 필요없어짐
//var replyList = replyService.findAllByPostId(it.getId());
//it.setReplyList(replyList);
ReplyEntity 추가 :
@ManyToOne
@ToString.Exclude
@JsonIgnore
private PostEntity post; //PostEntity @OneToMany(mappedBy = "post")에 맞춰 변경
ReplyEntity 추가
private final PostRepository postRepository;
수정:
public ReplyEntity create(ReplyRequest replyRequest){
var optionalPostEntity = postRepository.findById(replyRequest.getPostId());
if(optionalPostEntity.isEmpty()){ //null 일 때
throw new RuntimeException("게시글이 존재하지 않습니다. "+ replyRequest.getPostId());
}
var entity = ReplyEntity.builder()
.post(optionalPostEntity.get())
이미 삭제된 ("UNREGISTERED") 게시글도 보인다.
이를 보이지 않게 해보자.
BoardEntity 추가:
@Where(clause = "status = 'REGISTERED'") //clause = 조건절
private List<PostEntity> postList = List.of();
status = REGISTERED 인 것만 리스트에 내려가게 한다.
글을 최신순으로 보고싶다면 boardEntity에 추가한다.
@OrderBy(clause = "id desc") //아이디 최신순 정렬
728x90
'JAVA > 프로젝트' 카테고리의 다른 글
배달 플랫폼 백엔드 개발: Filter request, Response Log (0) | 2024.05.20 |
---|---|
MVC 기반 온라인 쇼핑 카트 구현하기: DB 설계 (0) | 2024.05.05 |
Spring Boot: JPA 연관관계 설정하기, Dto, Converter (0) | 2024.04.27 |
Spring Boot: End point 개발 3, 게시글과 게시글에 달린 답변 같이 보기 (0) | 2024.04.27 |
Spring Boot: End point 개발 2, 조회, 개별 조회, 삭제 (0) | 2024.04.27 |