1

「 ExampleEntity」のカウントを取得するために、次のコードを書きました。

cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Long> cq = cb.createQuery(Long.class);
root = cq.from(ExampleEntity);
cq.select(cb.count(root));
return entityManager.createQuery(cq).getSingleResult();

生成された SQL: Hibernate: select count( exampleen0_.id ) as col_0_0_ from EXAMPLEENTITY exampleen0_

ただし、パフォーマンス上の理由から (Oracle 11g データベースを使用)、次の SQL を生成する必要があります。

目的のSQL:サンプルのexampleen0_からcol_0_0_としてcount(*)を選択します

JPQL クエリを作成するのは非常に簡単ですが、フィルター用に既存の多くのコードを書き直す必要があります。

CriteriaQuery を使用して "count(exampleen0_.id)" の代わりに "count(*)" を生成するにはどうすればよいですか?

4

2 に答える 2