hibernate里,使用criteria按月份查询date类型数据

来源:百度知道 编辑:UC知道 时间:2024/06/30 19:08:29
小弟最近在看hibernate。想问下这个问题。使用mysql数据库里,想查4月份的数据,可以使用:
select * from day_report where month(union_date)='07'
这样的方式查询到。
那么在hibernate里,要使用criteria来查询应该怎么查?我是想用struts查询指定月份和年份的数据。如果年份和月份都没有被选择,那么默认查询出当年当月的数据。所以我写了个类,想要根据前台传递来的值,来像criteria里添加查询条件。问题是我不知道如何从date型数据里,查询指定月份和年份,哪位大哥能给的大概的方法~~~

没想到好办法,有个曲折的实现:使用between

Session session=HibernateSessionFactory.currentSession();
Transaction tran=session.beginTransaction();
Criteria criteria=session.createCriteria(Test.class);

Criterion criterion=Expression.between( "testTime ",start_date,end_date);

start_date,end_date是你想查找时间的上下限,我想你肯定能得到。

好象没有month这种函数,最简单的方法就是把数据库的数据有生成日期这个字段,然后你要查询指定月份的数据就把月份作为参数传进来跟数据库的字段做比较,返回查询结果.