我使用DATE:
类型的字段在mysql数据库中存储日期@Temporal(TemporalType.DATE)
@Column(name="RECIEVING_DATE")
private Date recieving_date;
// getters and setters
但是当hibernate保存它时,日期会以日期时间格式保存,即它不存储2015-02-23而是2015-02-23 00:00:00。
我用于插入日期的代码
String recieving_date = request.getParameter("recieving_date");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date ds = null;
try {
Date date = df.parse(recieving_date);
ds=new java.sql.Date(date.getTime());
} catch (ParseException e1) {
System.out.println("Exception occured in parsing date : "+e1);
}
doc_mvmnt.setRecieving_date(ds);
现在,我可以通过在数据库中运行alter table query来更改类型,但每次都会很痛苦。我怎么能告诉hibernate保持我想要的类型。而且,如果这是可能的,是否可以使用hibernate定义varchar和整数的大小。请帮忙
答案 0 :(得分:1)
因为我看到你只将date part
日期时间传递给recieving_date
,recieving_date
的类型肯定是java.sql.Date
(因为你将该类型的日期传递给它)所以我认为其中一个注释应该有效@Type(type="date")
或@Temporal(TemporalType.DATE)
,而第二个注释不起作用,请尝试另一个并给出反馈:
@Column(name="RECIEVING_DATE")
@Type(type="date")
private Date recieving_date;
// getters and setters
如果这不能解决问题,请尝试修改自定义格式的getter和setter