谁能帮助我为以下sql查询创建条件查询, 我不能在子查询的where子句或谓词中使用日期子查询
从订阅中选择* 其中的ID(从subscription_package中选择subscription_id 其中(从subscription_package中选择MAX(output_date) 其中package_status ='SENT')在'date1'和'date2')之间;
由于我不熟悉jpa标准,因此我尝试创建类似
Subquery<Date> dateQuery = query.subquery(Date.class);
Root<SubscriptionPackage> dateRoot = dateQuery
.from(SubscriptionPackage.class);
Subquery<SubscriptionPackage> mappingQuery = query
.subquery(SubscriptionPackage.class);
Root<SubscriptionPackage> mappingRoot = mappingQuery
.from(SubscriptionPackage.class);
dateQuery.select(criteriaBuilder.greatest(dateRoot.get("OutputDate")));
dateQuery.where(criteriaBuilder.equal(dateRoot.get("PackageStatus"),(SENT)));
mappingQuery.where(criteriaBuilder.between(dateQuery, outFrom , outTo));
criteriaBuilder.exists(mappingQuery);
但是jpa不允许mappingQuery.where(criteriaBuilder.between(dateQuery,outFrom,outTo)); 所以请帮忙解决这个问题。