Есть ли запрос количества запросов (если) в QueryDsl? - PullRequest
0 голосов
/ 22 марта 2020

Я хочу, чтобы результат, как этот запрос.

SELECT 
  book_id, 
  COUNT(member_id), 
  COUNT(if(returned = 1, 1, null)) 
...

В QueryDSL есть запрос «случай-когда», но это не то, что мне нужно.
Я не могу найти какие-либо способы использовать запрос COUNT IF.
Поэтому мне интересно Есть какие-либо способы использования запроса COUNT (), который использовал функцию COUNT IF в querydsl.

https://www.mysqltutorial.org/mysql-count/

JPQLQuery<?> countDto = getQueryDsl().createQuery()
  .select(bookRental.bookId, bookRental.memberId.count(), bookRental.memberId.count(...)
  .from(bookRental)
  .where(bookId.in(bookIds))
  .groupBy(bookRental.bookId);

Или я должен использовать CaseBuilder ()?

new CaseBuilder()
    .when(bookRental.returned.eq(true))
    .then(bookRental.memberId.count(1))
    .otherwise(0)
...