본문 바로가기
공부의/JAVA

JPA native Query count 방법

by 포로리씨 2023. 3. 2.
728x90
반응형

JPA nativeQuery 사용시 Page 타입으로 받기위해서 count 가져오는법

@Query(value = 
   "SELECT c.ID AS id, c.USR_GRP_ID AS usrGrpId, c.USR_ID AS usrId, c.CONTENT AS content " +
   "FROM BOARD c " +
   "LEFT JOIN STD_USR_GRP g ON c.USR_GRP_ID = g.USR_GRP_ID " +
   "LEFT JOIN STD_USR u ON c.USR_ID = u.USR_ID " +
   "WHERE 1=1 " +
   "AND c.CREATED BETWEEN :startDate AND :endDate " +
   countProjection = "ID",
   nativeQuery = true)
   Page<Board> findAllByDate(
       @Param("startDate") String startDate,
       @Param("endDate") String endDate,
       Pageable pageable);

 

countProjection = 'id' 추가해서 totalCount를 return Page에 추가 가능하다 

 

하지만 JPA를 사용하는 이유가 객체와 데이터베이스의 연결로 SQL 작성을 생략, 간소화이므로 NATIVE QUERY의 사용을 지양하는것이 효율적이다. 

 

Entity와의 join은 사용자 정의 함수로 사용하여 코드상의 활용성을 높이는것을 추천한다

728x90
반응형