У меня есть буксирные таблицы, склады сущностей [id] и device_infos [id, depot_id, deviceNum];С обычным SQL, я мог бы сделать это:
SELECT `depots`.*,
( SELECT sum( device_num ) AS incomed_total FROM `device_infos` WHERE `depots`.`id` = `device_infos`.`depot_id` AND `device_infos`.`deleted_at` IS NULL ) AS `incomed_total`,
ОТ depots
ПРЕДЕЛ 20 СМЕЩЕНИЕ 0
теперь я использую спецификацию метод toPredicate:
public Predicate toPredicate(Root<Depots> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
List<Predicate> predicate = new ArrayList<>();
...
Predicate[] predicates = new Predicate[predicate.size()];
return criteriaQuery.where(predicate.toArray(predicates)).getRestriction();
}
каксделать это с помощью CriteriaQuery? что у меня есть попытка использовать множественный выбор, но это не работает.