[英]hibernate - making type of column in mysql only date and not datetime
我使用DATE类型的字段将日期存储在mysql数据库中:
@Temporal(TemporalType.DATE)
@Column(name="RECIEVING_DATE")
private Date recieving_date;
// getters and setters
但是当hibernate保存它时,date以datetime格式存储,即它不只存储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来更改类型,但这每次都会很痛苦。 我怎么能告诉休眠保持我想要的类型。 而且,如果可能的话,是否可以使用休眠定义varchar和整数的大小。 请帮忙
因为我看到你逝去的只是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方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.