我的实体类中有一个createDateTime
字段Date
dataType,而hibernate在mysql表中生成了一个datetime
类型的列。现在,我需要将createDateTime
字段与值无比秒进行比较。实际上,一个用户可以在搜索字段中输入例如2015-01-01 12:10
,我想显示结果为2015-01-01 12:10:10
crateDateTime
的记录。我知道平面查询可以做到这一点:
SELECT * FROM table_test WHERE crateDateTime LIKE "2015-01-01 12:10 %"
但我不知道如何通过休眠来做到这一点。
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
data = formatter.parse("2015-01-01 12:10");
//This returned null.
Criterion crtmp = Restrictions.like("createDateTime", data);
//This returned ClassCastException. Because second argument must have "Date" dataType not "String"
Criterion crtmp = Restrictions.like("createDateTime", data + "%");
答案 0 :(得分:2)
你应该创建一个Date变量,例如createDateTimePlusOneMinute
,而不是使用以下限制查找createDateTime
和createDateTimePlusOneMinute
之间的时间范围
criteria.add(Restrictions.ge("createDateTime", createDateTime));
criteria.add(Restrictions.lt("createDateTime", createDateTimePlusOneMinute));
答案 1 :(得分:0)
//日期时间比较
Select c from Customer c where c.date<{d '2000-01-01'}