我是 JPA 的新手
我正在尝试查询一个表,其中我的输入日期值应介于数据库记录的开始日期和结束日期之间
我正在尝试做:
List<Predicate> conditionsList = new ArrayList<Predicate>();
conditionsList.add(criteriaBuilder.between(inputDate, root.get("startDate"), root.get("endDate")));
我从 Using JPA/Hibernate Criteria to pull between a date 中找到了以下解决方案:
ParameterExpression<Date> d = criteriaBuilder.parameter(Date.class);
criteriaBuilder.between(d, root.<Date>get("startDate"), root.<Date>get("endDate"));
但是如何在将 CriteriaBuilder 添加到 Predicate 之前将 Parameterexpression 值设置为 inputDate 变量值呢?
原文由 firstpostcommenter 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以试试这个方法。
这种方式适用于我的情况。
但对于你的情况(使用 ParameterExpression)。
创建查询时设置参数。
currentDate
是你的日期,d
是你之前创建的ParameterExpression
。我更喜欢第一种方式,它对我来说更直观和合乎逻辑。