为什么 @UpdateTimestamp 在实体创建时默认设置一个值?

Dav*_*sus 6 java audit annotations hibernate spring-boot

我有一个实体,其中有一个字段用于保存实体更新的日期。我正在使用下面的注释:

@Temporal(TemporalType.TIMESTAMP)
@UpdateTimestamp
@Column(name = "updated_at", nullable = true)
private Date updatedAt;
Run Code Online (Sandbox Code Playgroud)

我想要updatedAt作为null默认值,但我的默认值是创建实体时的同一日期。

在我的@Service班级中,我像这样保存实体:

visitorRepository.saveAndFlush(visitor)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用@UpdateTimestamp将我的updatedAt保存为null作为默认值?

小智 4

正如安德鲁·S在评论中建议的那样,@UpdateTimestamp和的结合@Column(... insertable = false)使我成功了。