팀 주간회의를 진행하던 중, 프런트엔드를 담당하는 세나가 만든 프로토타입 디자인을 보았다.
→ 그리곤, 마이페이지에 들어가면 좋다고 생각해 만들어온 새로운 기능이 눈에 띄기 시작했다.
새로운 기능
- 자신이 답변한 Q&A 게시글 목록 조회하기
참고) 우리의 프로젝트 기능은 아래와 같다.
자신(의료진)이 답변한 게시글 목록 조회하기
/* StaffRepository.java */
public List<Board> findBoardListByStaffId(Staff staff) {
List<BoardReply> boardReplyList
= em.createQuery("select br from BoardReply br where br.staff = :staff", BoardReply.class)
.setParameter("staff", staff)
.getResultList();
return boardReplyList.stream()
.map(BoardReply::getBoard)
.collect(Collectors.toList());
}
staff
는 비영속 상태이다.staff
를 이용한다면, id 비교를 통해 일치하는 지 검사할 수 있다./* StaffRepository.java */
public List<Board> findBoardListByStaffId(**Long staffId**) {
List<BoardReply> boardReplyList
= em.createQuery("select br from BoardReply br join br.staff s where s.id = :id", BoardReply.class)
.setParameter("id", staffId)
.getResultList();
return boardReplyList.stream()
.map(BoardReply::getBoard)
.collect(Collectors.toList());
}
의료진을 비교한다고 해서, 정말 객체끼리 비교할 필요는 없다.
객체 지향 설계시 현실 세계와 확실히 구분하자.