0

私がやりたいのは、2つのイベントの違いを取得することです。この場合、ストアが特定のアイテムの製造を開始したときと、同じストアがそれを顧客の場所に輸送し始めたときのイベントです。このWebAppを開発するためにJavaとHibernateを使用しています。エンティティはレポートと呼ばれます(この情報からレポートを生成するため)。両方のイベントの属性は次のとおりです。

@Column
private Timestamp fechaFabricacion;
@Column   
private Timestamp fechaTransporte;

それらは私のデータベースに正しく保存されています:

2012-09-24 13:13:10 

製造開始および

2012-09-24 13:13:40

輸送開始用。

私が報告したいのは、店舗(この場合)が製造から輸送まで30秒かかったことです。現在、値は完全に保存されています。データベースから値を取得して計算しようとすると、これが使用するコードになります。

Query qr = em.createNamedQuery("Reporte.findByNumSeguimientoEntrega");
    qr.setParameter("numSeguimientoEntrega",numSeguimiento);
    List<Reporte> reportList = qr.getResultList();
    Reporte report = reportList.get(0);
    Timestamp timeStamp1 = report.getFechaInicio();
    Timestamp timeStamp2 = report.getFechaFabricacion();
    Long timeDiference =(timeStamp1.getTime()-timeStamp2.getTime())/(1000 * 60 * 60 * 24);

問題は、デバッガーがこの画像に示すように、両方のタイムスタンプのnano値に対して0を取得することです。

私はここで何が間違っているのですか?どうすれば実際の値を取得して時差を取得できますか?

時間を割いてこれを読んでくれてありがとう。

4

1 に答える 1

0

アノテーションを使用して、エンティティの日付をマップする必要があります。

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "DATE")
public Date getDate() {
    return this.date;
}

そうすればうまくいくはずだと思います。

于 2012-09-24T19:13:31.870 に答える