요즘 회사에 적응하느라 기술블로그 작성에 소홀했다ㅠㅠ
앞으로 좀 더 반성하고 공부하면서 계속 잊어버리는 부분이나,
새롭게 알게된 내용을 정리하려고 한다!!
* 코드설명 *
: Page, Size, Sort, Property 순으로 PageRequest.of 의 인자로 대입되었다.
"asc"와 문자열이 같은지 Boolean -> equalIgnoreCase는 대소문자와 무관하게 문자열동등 비교가 진행된다.
삼항연산자를 이용해서 Boolean ? True : False 순으로 비교하고 return한다.
Command에 default 값을 설정했더라도 불러오지 않으면 Pageable에 당연히 넣을 수 없다.
따라서 Pageable에 값을 넣기 위해 Command Model에서 getPage 와 getSize를 진행한다.
* 코드설명 *
Pageable을 인자로 받은 메서드는 return을 Page<> 형태로 진행된다.
따라서, Repository에서 페이징 기능을 위해 Pageable을 이용해 Page<>를 return했다면,
ServiceImple (서비스구현체) 에서 원하는 최종 return 타입으로 변환하도록 해야한다.
SELECT p FROM queryTable p WHERE p.type IS NULL OR p.type = :type
* 코드설명 *
@Query 어노테이션 안에 SQL 쿼리문을 String 형태로 넣어준다.
테이블명에 별칭을 지정한다.
파라미터로 넘어오는 변수는 ':변수명' 으로 매핑된다.
JPA 처리를 담당하는 Repository는 기본적으로 4가지가 있다.
(T : Entity의 타입클래스, ID : P.K 값의 Type)
1) Repository<T, ID>
2) CrudRepository<T, ID>
3) PagingAndSortingRepository<T, ID>
4) JpaRepository<T, ID>
* 코드설명 *
넘어오는 파라미터가 객체 어디에 매핑되는 건지 정확하게 정의해서 넘겨주어야한다.