Hibernate标准获取2012年的记录

时间:2012-04-02 09:16:49

标签: oracle hibernate

我需要从搜索条件输入年份的所有记录。 对于前: String year =“2012”;

在休眠中它适用于

criteria.add(Restrictions.like("createDate", "%"+year+"%"));

createDate的格式为DD-MM-YY。

请建议..

2 个答案:

答案 0 :(得分:0)

criteria.add(Restrictions.like("createDate", "%2012%", MatchMode.ANYWHERE));

但是我希望将你的数据库字段更改为日期格式(目前是字符串?)并执行大于比较(而不是像)。

答案 1 :(得分:0)

like仅适用于String。对于日期字段,您可以使用Restrictions.between()为where子句

生成between '01/01/2012 00:00:00' and '12/31/2012 23:59:59'
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date fromDate = df.parse("1-1-2012 00:00:00");
Date toDate = df.parse("31-12-2012 23:59:59");

criteria.add(Restrictions.between("createDate", fromDate, toDate));

另请注意,Criteria API中使用的所有属性都是Java属性名称,而不是实际的列名。