@ Query(value = "select * from paper_entry where owner null or owner =?1"、countQuery = "select count(*)from paper_entry where owner null or owner =?1 "、nativeQuery = true)
ページfindAll(Long userId、Pageable pageable);
Mysql 5.7、spring-data-jpa1.11.3.RELEASEを使用しています。ご覧のとおり、私はドキュメントに従います https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.at-query 。しかし、私はこのエラーが発生しました。
原因:org.springframework.data.jpa.repository.query.InvalidJpaQueryMethodException:メソッドpublic abstract org.springframework.data.domain.Pagecom.gbdata.entry.persistence.daoで動的な並べ替えやページ付けを行うネイティブクエリを使用できません.PaperEntryRepository.findAll(Java.lang.Long、org.springframework.data.domain.Pageable)at org.springframework.data.jpa.repository.query.NativeJpaQuery。(NativeJpaQuery.Java:55)〜[spring-data-jpa -1.11.3.RELEASE.jar:na] at org.springframework.data.jpa.repository.query.JpaQueryFactory.fromMethodWithQueryString(JpaQueryFactory.Java:72)〜[spring-data-jpa-1.11.3.RELEASE.jar: na] at......。
解决没? SQL里面加ORDER BY ?#{#pageable}
就可了
@Query(
value = "select * from paper_entry where owner is null or owner = ?1 ORDER BY ?#{#pageable}",
countQuery = "select count(*) from paper_entry where owner is not null or owner = ?1 ORDER BY ?#{#pageable}",
nativeQuery = true)
Page findAll(Long userId, Pageable pageable);
これと重複しています 質問 。