Back-end
[JPA] 최신순으로 목록 조회
yeobi
2024. 5. 30. 21:17
Controller
/** 최신 순으로 상담 목록 조회
*
* @return ResponseEntity<List < CounselingResponseDTO>> 상담 목록
* @author
*/
@GetMapping("/")
public ResponseEntity<List<CounselingResponseDTO>> getAllCounseling() {
List<CounselingResponseDTO> counselingList = counselingService.getAllCounseling();
return new ResponseEntity<>(counselingList, HttpStatus.OK);
}
Service
/** 최신 순으로 상담 목록 조회
*
* @return List<CounselingResponseDTO> 상담 목록
* @author
*/
@Override
@Transactional(readOnly = true)
public List<CounselingResponseDTO> getAllCounseling() {
return counselingRepository.findAllByOrderBySentDateDesc().stream()
.map(CounselingResponseDTO::new)
.collect(Collectors.toList());
}
counselingRepository.findAllByOrderBySentDateDesc().stream()
.map(CounselingResponseDTO::new)
.collect(Collectors.toList());
= List<Counseling>으로 반환된 리스트 값을 List<CounselingResponseDTO> 형식으로 변환
Repository
public interface CounselingRepository extends JpaRepository<Counseling, Integer> {
List<Counseling> findAllByOrderBySentDateDesc();
}
findAllByOrderBySentDateDesc(); = 작성된 시간을 기준으로 내림차순 정렬하여 모든 상담 리스트를 최신순으로 반환
ResponseDTO
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CounselingResponseDTO {
private Integer counselingId;
private User user;
private String category;
private String content;
private Boolean isAnswered;
private LocalDateTime sentDate;
public CounselingResponseDTO(Counseling counseling) {
this.counselingId = counseling.getCounselingId();
this.user = counseling.getUser();
this.category = counseling.getCategory();
this.content = counseling.getContent();
this.isAnswered = counseling.getIsAnswered();
this.sentDate = counseling.getSentDate();
}
}