Lombok @Builder 如何创建带有值更改时间戳的字段?

问题描述 投票:0回答:1

我有以下课程:

@Data
@Builder
public class SampleClass<String, String> {
   @NonNull
   String key;

   @NonNull
   String value;
}

有什么方法可以在类初始化时以及值更改/编辑/更新时添加时间戳吗?

我尝试添加:

@Temporal(TemporalType.TIMESTAMP)
private TimeStamp editedAt;

但似乎不是我要找的。

java lombok builder
1个回答
2
投票

您可以通过一些选择来实现它。但是,Lombok 无法帮助您。您必须使用其他选项。

您可以使用

@CreationTimestamp
@UpdateTimestamp

@Column
@CreationTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date createAt;

@Column
@UpdateTimestamp
@Temporal(TemporalType.TIMESTAMP)
private Date editedAt;

另一种方法是使用

@PrePersist
&
@PreUpdate
:

@Data
@Builder
public class SampleClass {
   // other fields
   @Column
   @Temporal(TemporalType.TIMESTAMP)
   private Date createdAt;

   @Column
   @Temporal(TemporalType.TIMESTAMP)
   private Date updatedAt;

   @PrePersist
   protected void onCreate() {
     createdAt = new Date();
   }

   @PreUpdate
   protected void onUpdate() {
     updatedAt = new Date();
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.