GenericDAO.persist()不返回时间戳

时间:2018-11-29 15:20:39

标签: postgresql rest jpa sql-timestamp

我们将JPA与JavaD EE后端软件一起使用,该软件具有GenericDAO类。调用javax.persistence.EntityManager.persist(t)的方法返回我们刚刚写入PostgreSQL数据库的对象“ t”(我们希望在REST调用响应中将其交付给前端)。来自数据库的数据集正在映射到我们自己的@Entity“ Message”类。

返回的对象为我提供了除时间戳之外存储在数据库中的所有数据。示例:

 Field messageID: 751 Type: long
 Field messageText: test Type: class java.lang.String
 Field timestamp: null Type: class java.sql.Timestamp 
 ...

时间戳不是由我们的代码生成的,而是由数据库生成的。我们在@Entity“ Message”类中定义它,如下所示:

 @Column(nullable = false, updatable = false, insertable = false, columnDefinition = "TIMESTAMPTZ DEFAULT NOW()")
 private Timestamp timestamp;

“ MessageID”也由PostgreSQL生成,并已正确返回。在数据库内部,时间戳设置正确。 调用EntityManager.createQuery(query).getSingleResult()方法还会返回有效的时间戳。

有人可以告诉我为什么我尝试通过使用persist(t)检索时间戳时为何得到“ null”吗?

0 个答案:

没有答案