묻고 답해요
132만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestParam과 PathVariable의 차이
안녕하세요 수업들으면서 RequestParam과 PathVariable의 차이가 궁금해서 질문남깁니다.두 어노테이션 모두 클라이언트에 보낸 값들을 서버부분에서 가지고오는데 두 어노테이션을 언제 어떻게 구분하는지 헷갈려서 질문드립니다.
-
미해결
@Pathvariable에 엔티티의 식별자를 넣는 권장 방법이 있나요??
안녕하세요! REST API 공부를 하다가 요즘은 @Pathvariable로 엔티티의 식별자를 주는게 추세라는 말을 주워들었습니다. GET, DELETE 요청과 같이 requestbody를 사용하지 않는 요청에서는 식별자를 URI에 주는게 이해가 가는데 POST, PUT 요청은 requestbody에 데이터를 담아 보내는데 이 경우에도 식별자는 Pathvariable로 주는게 권장되는 방식인가요?? ex) 1번 방식은 userId를 경로에 포함 @PostMapping("/lists/{userId}") public void createCart(@PathVariable Long userId, @RequestBody CartDto cartDto) {} 2번 방식은 userId를 RequestBody에 포함 @PostMapping("/lists") public void createCart(@RequestBody CartDto cartDto) {}
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 사용 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]안녕하세요! PathVariable을 사용하다 궁금한 점이 생겨 질문 남깁니다. 변수명과 원하는 name 설정이 같으면 생략할 수 있다고 하셨는데 이를 테스트 코드로 작성 시 오류가 발생합니다. (포스트맨으로 실행 시 성공..) Controller @ResponseBody @GetMapping("/test/{id}") public void test(@PathVariable Long id) { ... } Test Code @Test public void 테스트_코드() throws Exception { Long id = 1L; mvc.perform(get("/test/" + id)) .andExpect(status().isOk()); } Error org.springframework.web.util.NestedServletException: Request processing failed; java.lang.IllegalArgumentException: Name for argument type [java.lang.Long] not available, and parameter name information not found in class file either. 제가 조사한 바로는 아래와 같은데 (Spring 공식 문서 일부) The matching of method parameter names to URI Template variable names can only be done if your code is compiled with debugging enabled. If you do have not debugging enabled, you must specify the name of the URI Template variable name to bind to in the @PathVariable annotation. debugging enabled한 compile이라는걸 이해할 수 없어 질문 납겨봅니다ㅠ.ㅠ 답변 남겨주시면 감사합니다.
-
미해결스프링 데이터 JPA
JPA를 이용하여 DB 데이터 이용하기
안녕하세요. 좋은 강의 감사 드립니다. 예를들어 DB에 Table A, B, C가 있고, Table A, B, C의 구조는 모두 다릅니다. 이때 아래와 같은 쿼리를 JPA를 이용하여 구현하고 싶습니다. SELECT * FROM A; SELECT * FROM B; SELECT * FROM C; (물론 select 외에도 많은 쿼리를 날릴 예정입니다^^) 이런경우 Table A, B, C에 대하여 각각 Controller A, Repository A, Entity A Controller B, Repository B, Entity B Controller C, Repository C, Entity C 를 따로 만들어 줘야 하는 건가요?! 3개의 테이블에서 모두 select *를 하려고 하기 때문에 REST API에서 "/api/{TABLE_NAME}"으로 변수를 받아 {TABLE_NAME}에 맞춰 해당하는 테이블의 값을 갖고오도록 할 수 있는건가요?! 그런식으로 구현할 경우 어떤 방식으로 해야 하나요?! 테이블이 너무 많은데 해당 테이블마다 Contoroller, Repository, Entity Class를 각각 생성하는것이 정말 효율적인 방법인지 문의드립니다. 감사합니다.