繁体   English   中英

TemporalType.TIMESTAMP白色java.util.Date不起作用(休眠版本3.2.7.ga)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM