我要修复一个旧项目,其中有一个数据库查询出错。在表中,有一个字段
viewTime TIME NOT NULL DEFAULT 0
我需要过滤掉实际上有0作为viewTime
的行:
Criteria query = /* create criteria */;
query.add(Restrictions.gt("viewTime", 0));
但是,由于viewTime
被定义为日期:
@Temporal(TemporalType.TIME)
private Date viewTime;
我得到了一个转换异常。另一方面,我不知道如何创建表示时间0
的有效Date对象。我也无法改变字段的类型。
我可以在viewTime > 0
这个对象中表达Criteria
吗?
答案 0 :(得分:2)
我认为您必须将日期对象与(00/00/00)进行比较,但任何API都不会像它那样生成DATE值。
这可能是您的解决方案转换为null,请参阅此link
答案 1 :(得分:1)
在我看来,你可以试试这样的结构:
Criteria query = /* create criteria */;
query.add(Restrictions.gt("viewTime", new Date(0)));