[개발] 다중 게시판 목록 및 조회

이진규·2022년 12월 31일
1

시작

다중 게시판의 목록 및 조회 기능을 구현한 것을 작성

다중 게시판 목록

게시판 종류 구분 컬럼(kind)을 기준으로 최신순으로 조회가 가능할 수 있도록 하였으며, 페이징은 추후 구현할 예정.

  • PostController
	@Operation(summary = "게시글 목록 조회", description = "게시글 목록 조회 메서드")
	@GetMapping("/lists/{kind}") // 게시글 목록 조회
	public ResponseEntity<List<PostResponseDto>> list(@PathVariable @Min(1) @Max(3) Integer kind) {

		List<PostResponseDto> postResponseDto = postService.getPostLists(kind);
		return new ResponseEntity<>(postResponseDto, HttpStatus.OK);
	}
  • PostService
@Transactional(readOnly = true)
...

	// 게시글 목록 조회
	public List<PostResponseDto> getPostLists(Integer kind) {

		// 스트림 변환 후 리스트 객체로 반환
		return postRepository.findAllKindDesc(kind).stream()
			.map(PostResponseDto::new)
			.collect(Collectors.toList());
	}
  • PostRepository
	// 게시판 종류(kind)를 파라미터로 받아 해당 게시판의 내용물을 최신순으로 가져오기
	@Query("select post from Post post where post.kind = :kind order by post.createdAt desc")
	List<Post> findAllKindDesc(@Param("kind") Integer kind);

게시판 조회

게시판을 클릭 시 세부 내용을 조회할 수 있도록 구현.

  • PostController
	@Operation(summary = "게시글 상세 내용 조회", description = "게시글 상세 내용 조회 메서드")
	@GetMapping("/{id}") // 게시글 상세 내용 조회
	public ResponseEntity<PostResponseDto> detail(@PathVariable Long id) {

		PostResponseDto postResponseDto = postService.getPostDetail(id);
		return new ResponseEntity<>(postResponseDto, HttpStatus.OK);
	}
  • PostService
@Transactional(readOnly = true)
...
	// 게시글 내용 불러오기
	public PostResponseDto getPostDetail(Long id) {

		Post post = postRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("Post is not Existing"));

		return new PostResponseDto(post);
	}
profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글