본문 바로가기
  • Adillete
【Spring】

[@RequestParam] RequestParam의 순서

by 아딜렛 2025. 9. 28.

분명 존재하는 projectId 임에도 삭제를 할때 userId를 못찾는 이유..

    {
        "uprId": 14,
        "userId": 23,
        "projectId": 43,
        "uprRole": "ADMIN"
    },
    {
        "uprId": 101,
        "userId": 51,
        "projectId": 43,
        "uprRole": "Member"
    },
    {
        "uprId": 102,
        "userId": 41,
        "projectId": 43,
        "uprRole": "Member"
    },
    {
        "uprId": 103,
        "userId": 44,
        "projectId": 43,
        "uprRole": "Member"
    },
    {
        "uprId": 104,
        "userId": 45,
        "projectId": 43,
        "uprRole": "Member"
    },
    {
        "uprId": 105,
        "userId": 24,
        "projectId": 43,
        "uprRole": "Member"
    }
]

 

 

//서비스단까지는 projectId, userId 순서였다가

@Transactional
  public int deleteUsersFromProject(int projectId, int userId) {

    UserProjectRole existUser = userProjectRoleDao.selectUserProjectRole(projectId, userId);
    if (existUser == null) {
      throw new IllegalArgumentException("해당 사용자는 프로젝트의 멤버가 아닙니다");
    }
    if ("ADMIN".equalsIgnoreCase(existUser.getUprRole())) {
      int adminCount = getCountProjectAdmins(projectId);
      if (adminCount <= 1) {
        throw new IllegalStateException("팀장은 직접 삭제할 수 없습니다. 팀장을 변경 후 삭제하세요.");
      }
    }
     
   //컨트롤러에서 갑자기 
     // 프로젝터에서 멤버 빼기int userId 먼저 나오니까 못찾음..
  @DeleteMapping("/delete")
  public String deleteMembers(@RequestParam("userId") int userId, @RequestParam("projectId")int projectId){
    userProjectRoleService.deleteUsersFromProject(userId, projectId);

    JSONObject jsonObject = new JSONObject();
    jsonObject.put("result", "success");

    return jsonObject.toString();

  }

 

결론

파라미터 순서를 잘 맞추어 쓰자