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

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的任何方式吗?

最佳答案

我认为您必须将日期对象与(00/00/00)进行比较,但是任何API都不会像这样产生DATE值。

这可能将您的解决方案转换为null,请参考此link

09-05 10:31