我需要从搜索条件输入年份的所有记录。 对于前: String year =“2012”;
在休眠中它适用于
criteria.add(Restrictions.like("createDate", "%"+year+"%"));
createDate的格式为DD-MM-YY。
请建议..
答案 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属性名称,而不是实际的列名。