我正在使用Spring 3.0.2使用Hibernate 3.2.1和Oracle 10g作为后端。在Oracle数据库表中,有一个数据类型为Date
的字段。这个Date
类型字段在Hibernate(POJO)中与java.util.Date
映射,如下所示。
private Date discountStartDate;
在将数据插入或更新到Oracle表格时,我提供的java.lang.String
类型日期类似于此08/15/2012 15:08:13
。完全没有问题。一切都运行良好,但由于Oracle日期数据类型(据我所知)总是与java.util.Date
映射到Hibernate实体,我不能使用其他Java API,如日历,我必须使用已弃用 Date
类的构造函数,用于处理Hibernate,如下所示。
Discount obj=new Discount();
date=new Date(request.getParameter("txtDiscountStartDate"));
obj.setDiscountStartDate(date);
应避免使用此类弃用功能。有没有办法在Hibernate中绕过这个已弃用的 Date (“StringDate”)构造函数?
答案 0 :(得分:3)
不,那是错的。
您应该使用String
和Date
将DateFormat
解析为SimpleDateFormat
。
Here就是一个例子。
这是另一个,因为这对你来说似乎很难:
DateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd");
formatter.setLenient(false);
String discountDateAsString = request.getParameter("txtDiscountStartDate");
Date discountDate = formatter.parse(discountDateAsString);