@CreationTimestamp注释的字段在保存在存储库时为null

Jot*_*thi 10 hibernate jpa jersey

(1)为什么"@CreationTimestamp"字段更新为null,以便在存储库上调用的"save"为该字段的空值?我希望用"@CreationTimestamp"注释的字段永远不会在创建时更新和维护一次.但它在我当前的项目中并没有这样的方式.

(2)我必须包含@Column(updatable = false)(除了@CreationTimestamp注释).为什么这有必要?

Gui*_*car 18

现在是 2020 年,hibernate-core-5.3.12,仍然需要将可更新设置为 false。

@CreationTimestamp      
@Column(updatable = false)
private LocalDateTime createdDate;
Run Code Online (Sandbox Code Playgroud)

更新

我相信不会对此进行修复,因为这CreationTimestamp是来自本机 hibernate 包 ( org.hibernate.annotations),并且我相信努力将在 jpa 抽象 ( org.springframework.data.annotation.CreatedBy)


Ale*_*ini 3

@CreationTimestamp 不是 JPA,而只是 Hibernate。

要使用创建日期自动创建字段,您可以定义如下属性:

  @Column(name = "creation_date", updatable = false)
  @Temporal(javax.persistence.TemporalType.TIMESTAMP)
  private Date creationDate = new Date();
Run Code Online (Sandbox Code Playgroud)