JPAのQueryでcount(*)に失敗する
SpringJPAの、org.springframework.data.domain.Pageをリクエストする際、下記のようなエラーが発生します。
Caused by: java.lang.IllegalArgumentException: Count query validation failed for method
Caused by: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list
モデルは多対多で、モデルのマッピングは正常に行えており、
下記メソッドをコメントアウトすることでエラーは解消します。
発行メソッドは下記です。
@Query("select e from Entity e "
+ "LEFT JOIN FETCH e.relation c "
+ "LEFT JOIN FETCH c.categoryFilter f "
+ "where e.deleteTs is null "
+ "and f.uid in (?1)")
Page<Entity> findByFilters(List<String> filters, Pageable pageable);
また、これの戻り値をListにすると、エラーは発生しなくなるため、
PageクラスのtotalElementsを取得することができないというエラーなのはわかっています。
似たようなクエリを流しても、エラーにはなりませんでした。
バグでしょうか?