休眠 - 使 mysql 中的列类型仅为日期而不是日期时间
hibernate - making type of column in mysql only date and not datetime
我在 mysql 数据库中使用 DATE 类型的字段存储日期:
@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 在数据库中查询自己来更改类型,但每次都会很痛苦。我怎样才能告诉 hibernate 保留我想要的类型。此外,如果可能的话,是否可以使用 hibernate 定义 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
我在 mysql 数据库中使用 DATE 类型的字段存储日期:
@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 在数据库中查询自己来更改类型,但每次都会很痛苦。我怎样才能告诉 hibernate 保留我想要的类型。此外,如果可能的话,是否可以使用 hibernate 定义 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