[英]How to convert TemporalType.TIMESTAMP to Date() in Java?
[英]TemporalType.TIMESTAMP whit java.util.Date don't function (hibernate version 3.2.7.ga)
我上课了
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_creazione")
private Date dataCreazione;
如果我将data_creazione上的db放在null上,则保存对象,我这样做:
Date data=new Date();
newAccordo.setDataCreazione(data);
并且相反:
newAccordo.setDataCreazione(new Timestamp(data.getTime()));
但不会保存该对象。 我寻找查询中的内容,并且是“ 2014-07-11 16:40:04”,这是正常的日期时间。 如果我手动将其工作。 在数据库中,我尝试放置日期时间和时间戳,但无论如何不要在数据库中编写。
如果我放:
@Temporal(TemporalType.TIME)
他在db中写了日期和时间,但是当我在jsp中标记日期和时间后,我只能从util.date开始看到正确的时间和日期。 所以我不能使用这个骗局。 我认为问题可能出在休眠版本中。
你怎么看?
您需要这样做:
Date data=new Date();
newAccordo.setDataCreazione(new Timestamp(data.getTime()); // data --> date ??
因为列类型是时间戳(yyyy-mm-dd HH:mm:ss。),而不是Date(yyyy-mm-dd)类型。 确保您导入
import java.sql.Timestamp;
import java.util.Date;
<property name="hbm2ddl.auto">update</property>
休眠设置为<property name="hbm2ddl.auto">update</property>
,这将自动更新列数据类型。
我通过从mysql生成时间戳来解决它。 无论如何,我认为这是我正在使用的旧休眠版本(3.2.7.ga)或Annotation版本(3.3.0.ga)的错误
无论如何,模型是
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "data_creazione")
private Date dataCreazione;
public Date getDataCreazione() {
return dataCreazione;
}
public void setDataCreazione(Date dataCreazione) {
this.dataCreazione = dataCreazione;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.