4

Spring data jpa 1.2 を使用していますが、次のような集計クエリ結果を取得する方法が見つかりません。

select count(v), date(v.createTimestamp) from UserEntity v
    group by date(v.createTimestamp)

ネイティブJPAと完全に連携

@Entity()
public class UserEntity {

   @Id
   private long id;
   .
   .
   @Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
   private Timestamp createTimestamp;

}

私のJPAリポジトリはすべて

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

どうすれば集約クエリを実行してSpringデータをスローできますか?ドキュメントにはまったく何も見つかりません

4

4 に答える 4

8

私はこれを行う方法を見つけました

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();
}

このようにして、集計データと実際のカウント (集計されたレコード) を取得できます。

于 2014-04-16T11:26:41.277 に答える
5

「countBy」は現在、Spring Data ではサポートされていません。

「countBy」クエリ メソッドのサポート

Spring Data JPA には、メソッド名解決を使用してエンティティをカウントする方法がありますか?

于 2013-03-15T10:30:41.477 に答える
1

オプションも使え@NativeQueryます

于 2015-10-27T04:23:29.403 に答える
0

spring-data でサポートされていないメソッドカスタム クエリに@Queryを使用できます。

于 2013-03-18T08:04:36.993 に答える