gpt4 book ai didi

java util Date 与 Criteria api 的比较未按预期工作

转载 作者:行者123 更新时间:2023-12-01 18:50:19 25 4
gpt4 key购买 nike

我正在尝试使用 CriteriaBuilder 的 Between 从数据库中过滤掉一些数据。我使用 java.util.Date 作为输入和实体列。我总是根据输入日期得到结果 - 1。如果我的输入日期是 2019 年 12 月 16 日,那么我也会获取 2019 年 12 月 15 日的数据。我无法理解这种奇怪的行为。我正在使用以下方法:

predicates.add(criteriaBuilder.between(root.get(Constants.COL_REGISTRATION_DATE),
registrationStartDate, registrationEndDate));

我也尝试了以下方法,但结果仍然相同。

Predicate startDatePredicate = criteriaBuilder.greaterThanOrEqualTo(root.get(Constants.COL_REGISTRATION_DATE), registrationStartDate);
Predicate endDatePredicate = criteriaBuilder.lessThanOrEqualTo(root.get(Constants.COL_REGISTRATION_DATE), registrationEndDate);

predicates.add(criteriaBuilder.and(startDatePredicate, endDatePredicate));

有人遇到过这样的问题吗?请帮我解决这个问题。

最佳答案

请尝试:

predicates.add(criteriaBuilder.between(root.get(Constants.COL_REGISTRATION_DATE),
LocalDate.parse(registrationStartDate),
LocalDate.parse(registrationEndDate))
);

关于java util Date 与 Criteria api 的比较未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59747364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com