我有一个实体,其字段名为 createTimestamp。这是由数据库在插入时创建的。 getter 看起来像这样:
@Column(name = "create_timestamp", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP", insertable = false)
public ZonedDateTime getCreateTimestamp() {
return createTimestamp;
}
但是,当我的服务调用 dao(spring 存储库)创建实体时,创建时间戳为空。
我创建的dao方法:
@Override
public int insert(AntennaSpec antennaSpec) {
super.save(antennaSpec);
logger.info("Antenna Spec " + antennaSpec.getAntennaCode() + " created");
return antennaSpec.getAntennaSpecId();
}
我的 REST 资源类通过调用 create 方法调用服务来创建实体。该方法返回新创建的实体的 ID。在资源中,我然后调用我的服务以返回传递 id 的实体,但创建时间戳为空。我为让它填充所做的工作是在我的资源中,我已经分离了实体,然后再次获取实体。这行得通,但我不喜欢将 detach
暴露给我的服务或资源类。
如有任何帮助,我们将不胜感激。
最佳答案
这是在 spring 中创建时间戳的另一种方式:
@CreationTimestamp
@Column(name = "create_timestamp")
private Date createTimestamp;
关于java - 坚持后 JPA 实体 CreateTimestamp 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46226884/