board-service에서 아래 코드 작성하기
@Entity @Table(name = "boards") public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long boardId; private String title; private String content; @ManyToOne @JoinColumn(name = "user_id", insertable = false, updatable = false) // 조회용 private User user; @Column(name = "user_id") private Long userId; public Board() { } public Board(String title, String content, Long userId) { this.title = title; this.content = content; this.userId = userId; } ... public User getUser() { return user; } }
@Service public class BoardService { ... // 연관관계를 활용한 게시글 조회 public BoardResponseDto getBoard2(Long boardId) { Board board = boardRepository.findById(boardId) .orElseThrow(() -> new IllegalArgumentException("게시글을 찾을 수 없습니다.")); // BoardResponseDto 생성 BoardResponseDto boardResponseDto = new BoardResponseDto( board.getBoardId(), board.getTitle(), board.getContent(), new UserDto( board.getUser().getUserId(), board.getUser().getName() ) ); return boardResponseDto; } // 연관관계를 활용한 게시글 전체 조회 public List<BoardResponseDto> getBoards2() { List<Board> boards = boardRepository.findAll(); return boards.stream() .map(board -> new BoardResponseDto( board.getBoardId(), board.getTitle(), board.getContent(), new UserDto( board.getUser().getUserId(), board.getUser().getName() ) )) .toList(); } }
@RestController @RequestMapping("/boards") public class BoardController { ... @GetMapping("/{boardId}") public ResponseEntity<BoardResponseDto> getBoard(@PathVariable Long boardId) { // BoardResponseDto boardResponseDto = boardService.getBoard(boardId); BoardResponseDto boardResponseDto = boardService.getBoard2(boardId); return ResponseEntity.ok(boardResponseDto); } @GetMapping() public ResponseEntity<List<BoardResponseDto>> getBoards() { // List<BoardResponseDto> boardResponseDtos = boardService.getBoards(); List<BoardResponseDto> boardResponseDtos = boardService.getBoards2(); return ResponseEntity.ok(boardResponseDtos); } }




