【发布时间】:2020-04-28 15:29:59
【问题描述】:
我的 CriteriaQuery 只返回一条记录,并且应该返回两条 dateFrom = '2019-12-10' 和 dateTo = '2019-12-20' 我不知道为什么。
这是我的数据库截图。
这是我的查询:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Reservation> reservationQuery = criteriaBuilder.createQuery(Reservation.class);
Root<Reservation> reservationRoot = reservationQuery.from(Reservation.class);
Predicate dateFrom = criteriaBuilder.greaterThanOrEqualTo(reservationRoot.get("dateFrom"), reservationDto.getDateFrom());
Predicate dateTo = criteriaBuilder.lessThanOrEqualTo(reservationRoot.get("dateTo"), reservationDto.getDateTo());
reservationQuery.where(dateFrom, dateTo);
TypedQuery<Reservation> res = entityManager.createQuery(reservationQuery);
List<Reservation> result = res.getResultList();
【问题讨论】:
-
您的代码似乎没问题。你试过调试吗?
-
尝试启用查询日志并检查生成的查询。
标签: java mysql hibernate entitymanager criteriaquery