编程语言
首页 > 编程语言> > java-如何在休眠条件中转换日期类型

java-如何在休眠条件中转换日期类型

作者:互联网

我有情况我在mysql数据库中有两种日期.一个是日期,另一个是日期时间.现在,在休眠条件下,我必须检查一个日期是否大于另一个日期?

standard.add(Restrictions.lt(“ award.deadline”,“ submission.date_received”));

但是不同的类型导致出现问题,显示“ java.lang.ClassCastException:java.lang.String无法转换为java.util.Date”.

即使我尝试使用日期解析器对其进行解析,但它也不像日期一样,仅像字符串一样.那么,您能告诉我如何在休眠条件下将一个日期转换为其他类型吗?

解决方法:

问题是Restrictions.lt(String propertyName,Object value)是错误的Restriction.您需要的是Restrictions.ltProperty(String propertyName,String otherPropertyName).

说明:

> Restrictions.lt(String propertyName,Object value)用于将实体属性与特定值进行比较
> Restrictions.ltProperty(String propertyName,String otherPropertyName)是比较两个实体的属性

如果您使用Restrictions.lt(“ Y”,“ X”)并且“ Y”是date属性的名称,那么休眠将尝试将“ X”转换为Date(而不是列名),并解析“可以说,日期的X”有点复杂-因此引发了异常.

标签:criteria-api,hibernate,java
来源: https://codeday.me/bug/20191023/1914785.html