Java 返回错误结果的CriteriaQuery

Java 返回错误结果的CriteriaQuery,java,mysql,hibernate,entitymanager,criteriaquery,Java,Mysql,Hibernate,Entitymanager,Criteriaquery,我的CriteriaQuery只返回一条记录,dateFrom='2019-12-10'和dateTo='2019-12-20'应返回两条记录 我不知道为什么 这是我的数据库截图 这是我的问题: CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<Reservation> reservationQuery = criteriaBuild

我的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();

我用query解决了我的问题,效果很好

        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());

        criteriaBuilder.and(dateFrom);
        criteriaBuilder.and(dateTo);
//        reservationQuery.where(dateFrom, dateTo);
        TypedQuery<Reservation> res = entityManager.createQuery(reservationQuery);
        List<Reservation> result = res.getResultList();
        return result;

你的代码似乎没问题。是否尝试调试它?尝试启用查询日志记录并检查生成的查询。