Я использую Spring Data JPA с QueryDSL и пытаюсь использовать функцию Sum в условии, где я использую разбивку на страницы, поэтому мне нужно сначала получить счет. Итак, у меня есть код Java, как показано ниже: -
NumberPath<Double> path = entityPath.getNumber("qty", Double.class);
BooleanExpression exp = path.sum().loe(120);
JPQLQuery countQuery = from(stock).where(exp);
long count = countQuery.count();
его создание запроса выглядит следующим образом: -
select count(stock0_.stock_id) as col_0_0_ from stock stock0_
where sum(stock0_.qty)>=120;
и я получаю Error Code: 1111. Invalid use of group function.
вышеприведенный запрос также не работает в SQL, потому что функция суммы не может использоваться с условием подсчета. Я понятия не имею, как справиться с такой проблемой, когда мне нужно сначала подсчитать, а затем получить реальные данные. Может кто-нибудь, пожалуйста, помогите мне с тем, что такое JPA подход к решению такой проблемы.
Пожалуйста, не предлагайте аннотацию @Query, потому что я не могу ее использовать. Из-за необходимости динамической фильтрации.