[Start Spring Boot] DTO에서 Entity 제거하고 PlayerController 구현하기

·2024년 3월 27일
0

Start Spring Boot!

목록 보기
29/53
post-thumbnail

DTO

  • DTO는 데이터를 전달하기 위한 객체이다.
  • DTO에서는 Entity를 포함하지 않는 것이 좋다.

기존 PlayerDTO

  • PlayerDTO.java
public class PlayerDTO {
    private long id;
    private String name;
    private long number;
    private Team team;
}
  • 다음과 같이 Team Entity를 포함하고 있다.

새로운 PlayerDTO

  • PlayerDTO.java
public class PlayerDTO {
    private long id;
    private String name;
    private long number;
    private long teamId;
}
  • 다음과 같이 Team 대신 teamId를 반환한다.

Player Controller

Get

    @GetMapping("{id}")
    public PlayerDTO getPlayerById(Long id) {
        return playerService.getPlayerById(id);
    }
    

Put

    @PutMapping("{id}")
    public PlayerDTO updatePlayer(Long id, PlayerDTO playerDTO) {
        TeamDTO teamDTO = teamService.getTeamById(playerDTO.getTeamId());
        if(teamDTO == null) {
            throw new TeamNotFoundException("Team not found with id: " + playerDTO.getTeamId());
        }

        Team team = new Team(teamDTO.getId(), teamDTO.getName(), teamDTO.getCity(), teamDTO.getChampionships());
        playerDTO.setTeamId(team.getId());

        playerService.updatePlayer(id, playerDTO);

        PlayerDTO updatedPlayer = playerService.getPlayerById(id);

        return updatedPlayer;
    }
    

Delete

    @DeleteMapping("{id}")
    public void deletePlayer(Long id) {
        playerService.deletePlayer(id);
    }

profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보