gpt4 book ai didi

java - 如何在 hibernate 标准中转换数据类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:34 24 4
gpt4 key购买 nike

我有一个情况。我在mysql数据库中有两种日期。一个是日期,另一个是日期时间。现在在 hibernate 标准中,我必须检查一个日期是否大于另一个日期?

criteria.add(Restrictions.lt("award.deadline", "submission.date_received"));

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

即使我尝试使用日期解析器来解析它,但它并没有作为日期,因为它只作为字符串。那么,您能告诉我如何在 hibernate 条件下将一个日期转换为不同的类型吗?

最佳答案

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

解释:

  • Restrictions.lt(String propertyName, Object value)是比较一个实体属性和一个特定的Value
  • Restrictions.ltProperty(String propertyName, String otherPropertyName)是比较两个实体的属性

如果您使用 Restrictions.lt("Y", "X") 并且“Y”是日期属性的名称,则 hibernate 会尝试将“X”转换为日期 (不是列名),并且可以说,将“X”解析为日期有点复杂 - 因此会引发异常。

关于java - 如何在 hibernate 标准中转换数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4343301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com