how to retrieve an aggregation function query with spring-data-jpa

java, jpa, spring, spring-data, spring-data-jpa

Solution

I found a way to do this

public interface UserRepository extends JpaRepository<UserEntity, Long>, 
      JpaSpecificationExecutor<UserEntity> {

      @Query(value = "select count(v), date(v.createTimestamp) from UserEntity v group by date(v.createTimestamp)", 
             countQuery = "select count(1) from (select count(1) from UserEntity v group by date(v.createTimestamp)) z")
      public List<Object[]> findCountPerDay();
}

This way we can get aggregate data along with actual count ( aggregated records )

Problem

I am using Spring data jpa 1.2 and I can't find anyway to retrieve an aggregate query result like the following one. ``` select count(v), date(v.createTimestamp) from UserEntity v group by date(v.createTimestamp) ``` Which work perfectly with the native JPA ``` @Entity() public class UserEntity { @Id private long id; . . @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") private Timestamp createTimestamp; } ``` any my JPA repository is ``` public interface UserRepository extends JpaRepository<UserEntity, Long>, JpaSpecificationExecutor<UserEntity> { } ``` so how can I do an aggregate queries throw Spring data, I find absolutely nothing in the documentation

Original source

Related problems