JPA를 통해 개발하다 보면 정말 쿼리로 다 되는데.. querydsl 에서 구현 안되는 게 너무 많다. 정말 마이바티스 쓰고 싶어서 눈물이 좔좔좔 특히 서브쿼리가 문제인데.. 서브쿼리가 필요한 쿼리라면 객체지향적으로 잘못 설계된 거라고 하는데... 그래도 이제 와서 바꿀 수 없잖아요..? 그래서 서브쿼리 때문에 native query를 쓰기엔 동적 조건 표현하기가 힘들어서 내놔.. 열심히 찾아본 결과 @Subselect를 발견하게 되었다. @Subselect 어노테이션은 엔티티 클래스에 적용되며, SQL 서브쿼리를 사용하여 가상 뷰를 정의하는 데 사용됩니다. 이 가상 뷰는 데이터베이스에 실제로 존재하지 않는 테이블처럼 사용할 수 있으며, 복잡한 쿼리를 ..
상황 pagination 구현해야함 entity가 아닌 DTO 로 받아야함 union all 사용 → @Query 사용해서 구현 페이지네이션 사용 @Query( value = "SELECT * FROM Users ORDER BY id", countQuery = "SELECT count(*) FROM Users", nativeQuery = true) Page findAllUsersWithPagination(Pageable pageable); parameter에 pageable을 넣으면 알아서 offset, limit 설정해줌 ※ 2.0.4 이전의 SpringData JPA 버전 → \n-- #pageable\n ← 이거 추가 단, 이후 버전인데 이걸 추가하면 실행이 안됨.. 주석이라 상관 없을 줄 알고 추..