커서 페이징을 공부하게 되면서 hasNext 라는 boolean 형태의 값으로 다음 페이지가 있는지 없는지를 프론트에게 넘겨주기 위한 sql 문을 작성해주고 싶어 작성을 해 보았지만 잘 안되었습니다.
JPA 표준 라이브러리에서는 지원하지 않는다.
- JPA는 엔티티(테이블) 없이는 데이터 선택을 지원하지 않는다고 합니다. 표준 SQL92도 이것을 지원하지 않으며 다른 데이터베이스에서 테이블 없이 선택하는 방법을 살펴보아야 한다?
- SQL92 표준에서는 SELECT 절에 테이블을 꼭 제공해주어야 합니다.
- JPA는 또한 널리 인정되는 표준이며 일반적으로 비표준 기능을 제공하지 않고 많은 표준 SQL 기능조차도 최신 버전의 JPA에서만 제공된다고 합니다.
- 따라서 해결 방법은 데이터베이스에 항상 하나 이상의 행이 있는 일부 엔티티에서 선택하고 query.setMaxResult(1)에 의해 결과를 최대 1로 제한하는 것이다.
- 더 나은 것은 항상 1개의 행을 갖고 그 내용이 절대 변경되지 않는 더미 엔티티를 만드는 것이다.
실제 data jpa exists도 이런식으로 작성되어 있다.
