RESTful服务的TimeStamp精度问题

时间:2019-04-26 11:09:22

标签: java postgresql rest

我正在处理postgreSQL上的一些数据,并使用JPA规范来获取它们。当在Angular front-end中显示它们时,我已经看到日期缺少精度,即从2018-01-26 11:48:07.13487起,日期类似于2018-01-26 11:48:07.134,即缺少2位精度。现在的问题是,该列是primary key的一部分,因此以后我将无法进行类似put的操作,因为日期不匹配。
该问题确实发生在REST服务上。如果我在eclipse上打印数据,日期精度似乎就很好了,但是当我在REST上检查日期精度时,它已经失去了2位精度2018-01-26T10:48:07.134+0000
相反,我可以尝试在前端(即2018-01-26 11:48:07.13487)上修复精度,然后发出put请求。在后端,我注意到它降低了精度,回到了2018-01-26 11:48:07.134

我正在测试非常简单的REST服务,例如:

@GetMapping("/getAllData")
  @ResponseBody
  public List<StammSolvaraJahr> getAllData() {
    EntityManager em = Connection.getEntityManger();
    return em.createQuery("SELECT ssj FROM StammSolvaraJahr ssj").setMaxResults(100).getResultList();
  }

1 个答案:

答案 0 :(得分:1)

这就是为什么不建议将时间戳记用作键的原因,这与浮点类型的原因相同。请注意,JSON没有为日期/时间定义特定的表示形式,因此没有必须支持的精度/分辨率。因此,如果您依靠它,一定会遇到麻烦。一种选择是发送时间戳,例如一个字段的秒分辨率,另一整数字段的分数(例如,纳秒)。