Этого можно добиться, используя Проекции JPA Spring Data в JPA Spring Data.
Создайте пользовательский метод Repository
как
@Repository
public interface PopulationRepository extends JpaRepository<Population, Long> {
@Query("select new com.example.Count(country, state, count(*) )
from Population p
group by p.country, p.state")
public List<Count> getCountByCountryAndState();
}
Также необходимо определить спецификатор c в классе Count
, который будет обрабатывать эту проекцию
private static class Count {
private String country;
private String state;
private long count;
//This constructor will be used by Spring Data JPA
//for creating this class instances as per result set
public Count(String country,String state, long count){
this.country = country;
this.state = state;
this.count = count;
}
}