簡體   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