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