BookRepository로가서 마우스 우클릭으로 Generate를 누르면 사용할 수 있는 함수들이 나온다.
● 함수 명명법
실습을하기 위해 workbench의 book테이블에 값을 더 넣어준다.
BookRepositoryTest.java로 와서 일치하는 bookName을 select해본다.
다른 실습도 사용해보기 위해 BookRepository에서 추가로 작성한다.
● JPQL
JPQL은 Java Persistence Query Language로 엔티티 객체를 조회하는 객체지향 쿼리이며 JPA가 지원하는 다양한 쿼리 방법 중 하나이다.
SQL은 테이블을 대상으로 쿼리하지만 JPQL은 엔티티 객체를 대상으로 쿼리한다.
@Query는 더 구체적인 쿼리 메서드를 작성하기 위해 사용하는 쿼리 메서드의 custom버전이다.
@Query 어노테이션은 Entity의 JpaRepository를 상속받는 인터페이스에 정의한다.
< 실습하기 >
UserRepository.java에서 Query에노테이션을 사용해 매핑시켜 본다.
- 숫자로 매핑시키기
'?' 뒤의 숫자는 파라미터 위치를 말하는 것으로
List<User> selectByRole(String role, String username, String password); 가 있으면 1번째에 위치한 role을 찾겠다는 말이 된다. 만약 숫자가 2라면 username을 찾게 된다.
workbench에 user테이블의 값을 이렇게 넣어줬다.
UserRepositoryTest에서 테스트해본다.
- 숫자가 아닌 이름으로 매핑시키기
UserRepository.java 에서 작성해주는데
@Param은 ibatis가 아닌 repository로 매핑시켜줘야한다.
UserRepositoryTest에서 테스트해본다.
- 여러 개 매핑시키기
UserRepository.java 에서 password와 role을 매핑시켜준다.
그리고 UserRepositoryTest에서 테스트해본다.
- 포함 문자 매핑시키기
'IT수업 > SPRINGBOOT' 카테고리의 다른 글
IT 수업 21주차 (153) SQL (0) | 2024.05.17 |
---|---|
IT 수업 21주차 (152) 외래키 설정 (1) | 2024.05.16 |
IT 수업 21주차 (150) ORM_JPA (0) | 2024.05.16 |
IT 수업 21주차 (149) SQL Mapper_MyBatis (0) | 2024.05.16 |
IT 수업 21주차 (148) springboot 2 (0) | 2024.05.14 |