[Spring/개발] - TMI(4)

동글이·2022년 8월 24일
0

Spring/개발

목록 보기
5/7

네이티브 SQL

  • 랜덤 추출을 위한 쿼리는 jpql은 지원하지 않는다고 하였다.
  • 하여 jpa native query를 이용하여야 한다고 하였다.
  • 참고: https://data-make.tistory.com/616
  • ex)
	/**
     * 랜덤 여행지 정보 가져오기
     *
     * @return 랜덤 여행지 리스트
     */
    public List<Travel> findRandom() {
        return em.createNativeQuery("select * from travel order by rand() limit 20", Travel.class)
                .getResultList();       //native sql
    }

컨트롤러 매개변수에서 쓰이는 어노테이션 정리

  • @RequestBody :
    - 클라이언트가 body에 application/json 형태로 값(보통 객체)을 담아 전송하면, body의 내용을 다시 Java Object(객체)로 변환해주는 역할을 수행합니다.
  • @PathVariable : url에 id 값 넣어서 받아오는 경우
    ex) "travels/{travelId}/detail"
  • @RequestParam : 파라미터 하나하나 씩 받아 올때
    - HTTP 요청 parameter를 @RequestParam이 쓰이는 메소드의 변수로 Mapping 해주는 역할입니다.
  • @ModelAttribute : form 만들어서 한번에 받아올때
    - 클라이언트가 전송하는 HTTP parameter(URL 끝에 추가하는 파라미터), HTTP Body 내용을 Setter 함수를 통해 1:1로 객체에 데이터를 바인딩합니다. (Setter 필수!)
  • ※ 참고
    https://maivve.tistory.com/298, https://galid1.tistory.com/769
profile
기죽지 않는 개발자

0개의 댓글