0

我想要做的是获得两个事件之间的差异,在这种情况下,商店开始制造某些物品的事件以及同一家商店开始将其运送到客户位置的时间。我使用 java 和 hibernate 来开发这个 WebApp。该实体称为报告(因为我将从该信息生成报告)这两个事件的属性是:

@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);

问题是,正如我的调试器在这张图片中显示的那样,我的两个时间戳纳米值都为 0:

我在这里做错了什么?我怎样才能获得真正的价值并获得时差?

非常感谢您花时间阅读本文。

4

1 回答 1

0

您必须使用注释映射实体中的日期:

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

我认为这样它应该工作得很好。

于 2012-09-24T19:13:31.870 回答