问题描述:hibernate中代码中使用了date类型,映射到mysql时发现只有日期,没有具体时分秒,mysql中类型是date,具体一查,如下
MySQL:MySQL日期数据类型、MySQL时间类型使用总结 MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。
日期类型 存储空间 日期格式 日期范围
------------ --------- --------------------- -----------------------------------------
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155
所以我应该要映射成datetime格式或者timstamp
只需加上注释就行,hibernate中代码如下:
timstamp
private timestamp time;
@Column(name = "time",columnDefinition="TIMESTAMP" )
public Timestamp getTime() {
return time;
}
public void setTime(Timestamp time) {
this.time = time;
}
datetime如下:
private Date time;
@Column(name = "time")
@Temporal(TemporalType.TIMESTAMP)
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
注意修改了类型,再运行server,类型没变化,只有数据库中吧该表删除了,在启动server才生成正确的类型