1

我要修复一个较旧的项目,其中有一个数据库查询出错。在表中,有一个字段

viewTime TIME NOT NULL DEFAULT 0

我需要过滤掉实际上有 0 的行viewTime

Criteria query = /* create criteria */;
query.add(Restrictions.gt("viewTime", 0));

但是,sinceviewTime被定义为日期:

@Temporal(TemporalType.TIME)
private Date viewTime;

我得到一个铸造异常。另一方面,我不知道如何创建一个表示 time 的有效 Date 对象0。我也无法为此更改字段的类型。

我可以viewTime > 0用这个Criteria对象表达什么吗?

4

2 回答 2

2

I think you have to compare date object with (00/00/00) but the any API will not produce DATE value like it.

This might your solution convert to null refer this link

于 2013-06-04T12:39:01.313 回答
1

在我看来,您可以尝试这样的构造:

Criteria query = /* create criteria */;
query.add(Restrictions.gt("viewTime", new Date(0)));
于 2013-06-04T12:33:24.927 回答