티스토리 뷰
Spring Data JPA를 사용하다 보면 쿼리를 직접 사용할 경우가 있다.
1. Spring Data의 DAO는 대부분의 경우 JpaRepository를 상속한 인터페이스를 정의하여 사용한다.
2. 사용자가 직접 query를 사용하고 싶으면 인터페이스에 직접 메소드를 정의할 수 있다.
2-1 원하는 형식의 메소드를 정의하면서 필요한 인자값과 반환 타입을 지정한다.
2-1-1 특정타입인 경우 특정타입, Collection일 경우 Set, List, Map 등을 사용한다.
2-2 메소드에 @Query Annotation을 사용한다.
2-3-1 @Query annotation에 들어갈 field 이름은 테이블이 아닌 Entity 클래스와 Entity의 속성이름이다.
2-3-2 즉 Entity클래스 이름이 Location이고 Table 이름이 locations이면 Location을 사용해야만 동작한다.
2-3-3 field이름도 Entity의 property가 들어가야 한다. table의 column이름이 들어가면 동작하지 않는다.
2-3 Query에서 사용할 Named Parameter값들은 인터페이스의 인자로 받는다.
2-3-1 받을 때 @Param annotation을 붙이고 named parameter이름을 괄호에 명기한다. 아래 코드를 참고하다.
2-3-2 query문 내부에 named parameter를 지정할 때 :parameter 형식을 사용한다.
2-3-2-1 ':'과 변수이름 사이에 공백이 있으면 안된다.
package pe.pilseong.flightreservation.repositories;
import java.util.Date;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import pe.pilseong.flightreservation.entities.Flight;
public interface FlightRepository extends JpaRepository<Flight, Long> {
@Query("from Flight "
+ "where departureCity= :departureCity and "
+ " arrivalCity= :arrivalCity and "
+ " dateOfDeparture= :dateOfDeparture")
List<Flight> findFlights (
@Param("departureCity") String from,
@Param("arrivalCity") String to,
@Param("dateOfDeparture") Date departureDate
);
}
'Spring > Spring Boot' 카테고리의 다른 글
Spring Boot : RestTemplate사용하기 (0) | 2020.04.30 |
---|---|
Spring Boot : Data JPA - DTO 사용 할 때 (0) | 2020.04.29 |
Spring Boot : Email 보내기 (0) | 2020.04.26 |
Spring Boot : Web Application Context Root 위치 설정 (0) | 2020.04.25 |
Spring Boot : JSP 및 JSTL사용 설정 (0) | 2020.04.25 |
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- hibernate
- spring boot
- 로그인
- 외부파일
- RestTemplate
- 자바
- Rest
- one-to-one
- XML
- jsp
- Angular
- Security
- Validation
- 하이버네이트
- Many-To-Many
- 스프링
- 설정하기
- 스프링부트
- Spring Security
- form
- 상속
- one-to-many
- Spring
- 매핑
- WebMvc
- mapping
- login
- 설정
- crud
- MYSQL