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