gpt4 book ai didi

java - Hibernate Criteria - 日期比较未返回正确结果

转载 作者:行者123 更新时间:2023-11-29 03:29:48 25 4
gpt4 key购买 nike

我正在尝试检索在用户输入提供的日期范围内发生的一组记录。由于某种原因,即使存在应匹配的记录,标准也不会返回任何结果。

模型属性和示例数据:

@Column(name="date")
private Date date;

mysql> select * from student_interaction where id = X \G
*************************** 1. row ***************************
id: 23828
date: 2015-08-07 00:00:00
student_id: 2725
... other columns ommitted
1 row in set (0.01 sec)

标准实现:

List<StudentInteraction> returnList = new ArrayList<StudentInteraction>();
Criteria criteria = session.createCriteria(StudentInteraction.class);
if(userID > 0) {
List<Number> criteriaInList = new ArrayList<Number>();
criteriaInList = session.createSQLQuery("select student_id from advisor_student where advisor_id = :userID").setInteger("userID", userID).list();
if(criteriaInList != null && criteriaInList.size() > 0) {
criteria.add(Restrictions.in("student.id", criteriaInList));
}
}
criteria.add(Restrictions.ge("date", startDate));
criteria.add(Restrictions.lt("date", endDate));
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
returnList = criteria.list();
return returnList;

参数值:

  • 开始日期:8 月 15 日星期三 00:00:00 PST 14(日期)
  • 结束日期:8 月 15 日星期四 00:00:00 PST 15(日期)
  • criteriaInList:(1521、1840、1852、1914、5431、10748、29017、8056、2725、5505)

如您所见,记录的日期在提供的 startDateendDate 范围内,并且记录的 student_id 值包含在 criteriaInList 中放。有谁知道为什么 returnList 结果是 [](空)?

最佳答案

您是否尝试过直接在数据库上运行带有参数值的生成的 sql?这些开始/结束日期 GE 和 LT 值是否满足查询?

您可能只想从删除条件和开始/结束日期条件开始,然后继续一次添加一个条件。

关于java - Hibernate Criteria - 日期比较未返回正确结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31924069/

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