根据月份从MySql数据库中选择所有记录

根据月份从MySql数据库中选择所有记录,mysql,hibernate,sqldatetime,Mysql,Hibernate,Sqldatetime,我希望使用Hibernate Criteria API从MySQL日期字段获取所有记录。基本上,我希望查询选择从日期到预定义月份(例如一月)的所有行。这是我成功执行的MySql查询 select * from user u where month(u.birth_date) = 1; //1 for January 我想将这个MySql查询转换为hibernate条件,如 criteria.add(Restrictions.eq("month(birth_date)", month)); 但

我希望使用Hibernate Criteria API从MySQL日期字段获取所有记录。基本上,我希望查询选择从日期到预定义月份(例如一月)的所有行。这是我成功执行的MySql查询

select * from user u where month(u.birth_date) = 1; //1 for January
我想将这个MySql查询转换为hibernate条件,如

criteria.add(Restrictions.eq("month(birth_date)", month));
但这是一个错误

出生日期的DB数据类型为时间戳


提前谢谢

您必须编写自己的表达式。然后将该表达式与条件一起使用。您可以看到有关如何创建表达式的链接。

不适合您?查询正在运行,但我希望它采用Hibernate Criteria格式。这就是问题的答案。自定义标准classI希望使用Criteria.add(Restrictions.eq(some_input))格式,以及如何使用该格式。