web-dev-qa-db-ja.com

SpringJPAリポジトリでカウントを区別する方法

Spring Data JPAで明確なカウントを行うにはどうすればよいですか? @Queryアノテーションを使用したくありません。同等のSQLクエリは次のようになります。

SELECT COUNT(DISTINCT rack) FROM store WHERE id = 10001;

次のクエリを書いてみましたが、機能しません。

int countDistinctRackById();
6
Benimo

これはうまくいくはずです:

Integer countDistinctRackById(Long id);
1
Ilias Mentz

Spring Documentation に従ってこれを試してください:

Integer countDistinctRackById(String id);

Word Rackを実際のラックフィールドの名前に置き換えます

3
Afridi

これを試してみましたが、既存の回答はどれも機能しません。

次のクエリ:

Integer countDistinctRackById(String id);

このようなものをレンダリングします:

select distinct count(table0_.rack) as col_0_0_ from table table0_ where table0_.id=?

私は現在SpringBoot 1.2.3で立ち往生しているので、後で変更があった場合はidkですが、個別のカウントを実現するには、カスタムクエリを定義する必要がありました。

@Query("Select count(distinct rack) from Table t where t.id = ?1")

0