0
クエリ結果でグループの合計数を取得できませんでした。QueryDSL Gruop By行数
JPAQuery jpaQuery = new JPAQuery(entityManager);
jpaQuery.from(QMessageSend.messageSend)
.where(predicate)
.groupBy(QMessageSend.messageSend.messageId).count();
これは私の現在のコードです。
このコードは各グループの返り値です。
SELECT count(*)
FROM MESSAGE_SEND ms
GROUP BY ms.MESSAGE_ID
ただし、クエリ結果でグループの合計数を取得する必要があります。 以下のような結果が得られました
SELECT count(*)
FROM (
SELECT *
FROM MESSAGE_SEND ms
GROUP BY ms.MESSAGE_ID
) msc
私は何をすべきですか?
MESSAGE_IDは主キーではありません。 とJPAQueryの別個のメソッドでは、特定の列を選択できません。 MESSAGE_ID
がテーブルの主キー、そしてCOUNT(*)
で十分である
SELECT COUNT(DISTINCT s.MESSAGE_ID)
FROM MESSAGE_SEND ms;
場合:
MESSAGE_IDは主キーではありません。 とJPAQueryの異なるメソッドは選択列をサポートしていません。 ; – chooco13
@ chooco13 ...。私が答えた後、JPAに焦点を当てました。これは質問に答えますか?https://stackoverflow.com/questions/6197591/how-to-do-a-distinct-count-in- jpa-critera-api。 –