在将日期从字符串类型转换为日期数据类型时获取classcast异常

时间:2014-03-20 15:06:29

标签: java hibernate date criteria

我在方法参数中以字符串的形式获取日期(SettlementDate),如下面的方法所示

   public List<abc> eee(Long Id,
                String sfsdf, boolean dfds,
                 String SettlementDate,
                ) {

现在我正在应用如下所示的标准但是在我应用标准的pojo中,因为POJO THAT FIELD(SettlementDate)是Date类型,如下所示

class ddd
{
private Date settlementDate;
}

以下是标准实施

Criteria query = session.createCriteria(ddd.class);
query.add(Restrictions.eq("Id", Id));
query.add(Restrictions.eq("sfsdf", sfsdf));
query.add(Restrictions.eq("settlementDate", SettlementDate );

最终在数据库中我想以22.07.2016 00:00:00

这种格式存储日期

现在请告知我如何在条件中将此值设置为rite现在我在下面的行中获得了类强制转换

query.add(Restrictions.eq("settlementDate", SettlementDate );

清楚地证明字符串类型的日期未按日期格式转换(22.07.2016 00:00:00) 伙计们,如果我必须使用简单的日期格式,那么请告知如何在这种情况下使用它,谢谢

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要将日期字符串转换为日期。你可以试试这个:

query.add(Restrictions.eq("settlementDate", new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").parse(SettlementDate)));

其他一些评论:

  • 在数据库中存储日期时,应使用Date或DateTime格式,或者使用包含毫秒数的数字,但绝对不是字符串
  • Java类应以大写字母
  • 开头
  • 变量和参数名称应以小写字母
  • 开头