gpt4 book ai didi

java - 如何为日期范围的子句编写 hql 查询?

转载 作者:行者123 更新时间:2023-11-29 00:09:45 27 4
gpt4 key购买 nike

我正在编写一个 hql 查询,它检索给定日期之间特定车辆的详细信息,我有一个这样的方法。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Session session = HibernateSession.getHibernateSession();

// Starting Transaction
Transaction transaction = session.beginTransaction();
String hql = null;
//ArrayList<HistoryLatitudeBean> vehicleHistoryList= new ArrayList<HistoryLatitudeBean>();
try {
DateFormat df = new SimpleDateFormat("yyyy/mm/dd");
Date frmDate= df.parse("2014/01/01");
Date toDate=df.parse("2014/09/01");


hql= "from HistoryLatitudeBean where vehicleno=:vehicleno and rdate BETWEEN :frmdate and :todate";
Query query =session.createQuery(hql);
query.setParameter("vehicleno", 12);
query.setParameter("frmdate", frmDate);
query.setParameter("todate", toDate);
List<HistoryLatitudeBean> groupList = (List<HistoryLatitudeBean>)query.list();

for(HistoryLatitudeBean arr : groupList){
System.out.println(arr.getLat());
}


transaction.commit();
}
catch(Exception e){
if (transaction!=null) transaction.rollback();
e.printStackTrace();
}
finally{session.close();}
}

这是我的 bean 类

@Entity
@Table(name="hlatlng")
public class HistoryLatitudeBean {

@Id
@Column(name="vehicleno")
private int vehicleno;
@Column(name="lat")
private String lat;
@Column(name="lng")
private String lng;
@Column(name="status")
private String status;
@Column(name="rdate")
private Date rdate;
@Column(name="rtime")
private Date rtime;

//getter and setters

}

我在 mysql 命令行中执行的相同查询,我得到 11 行,但在 java 方法中我没有得到任何行。

在 Mysql 数据库中,我尝试查询为

select * from hlatlng where vehicleno=12 和 rdate BETWEEN '2014/01/01' and '2014/09/01'

我不知道如何通过 hibernate 传递日期甲酸盐。我上面的方法有什么问题,谁能告诉我。这对我很有帮助。

最佳答案

我不记得为什么,但是对于日期,Hibernate 要求您使用这个结构:

query.setParameter("frmdate", frmDate, Hibernate.DATE);
query.setParameter("todate", toDate, Hibernate.DATE);

我只将它与 Calendar 对象和 Hibernate.CALENDAR 一起使用,因此您可能需要调整确切的类型。

关于java - 如何为日期范围的子句编写 hql 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25738350/

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