Java Spring数据REST-POST后的空字段-我应该在何时/何地初始化它们?

Java Spring数据REST-POST后的空字段-我应该在何时/何地初始化它们?,java,spring-data,spring-data-rest,Java,Spring Data,Spring Data Rest,我的便笺储存库扩展了crudepository。注释具有标题、注释正文和创建日期。对/notes的POST请求将包括标题和记事本,我希望dateCreated自动为LocalDateTime.now() 我们可以接受吗 @Entity public class Note { ... @Column(name="DTCREATED") private LocalDateTime dateCreated = LocalDateTime.now(); 或者我应该用另一种方式来

我的便笺储存库扩展了crudepository。注释具有标题、注释正文和创建日期。对/notes的POST请求将包括标题和记事本,我希望dateCreated自动为LocalDateTime.now()

我们可以接受吗

@Entity
public class Note {
    ...
    @Column(name="DTCREATED")
    private LocalDateTime dateCreated = LocalDateTime.now();

或者我应该用另一种方式来做吗?

在我的代码中,我通过使用@PrePersist和@PreUpdate注释来实现这一点,当实体被持久化/更新时,将调用此注释,您不需要手动初始化
LocalDateTime
实例,您可以使用新注释来实现这一点

@CreationTimestamp
@Column(name = "create_datetime", nullable = false, updatable = false)
private LocalDateTime createDateTme;

@UpdateTimestamp
@Column(name = "lastupdate_datetime", nullable = false)
private LocalDateTime lastUpdateDateTime;

这些注释可以在
org.hibernate.annotations
包中找到。保存实体的实例时,不要初始化它们

@CreationTimestamp
/
@UpdateTimestamp
@PrePersist
/
@PreUpdate
之间是否存在数据库性能差异?还是一个优于另一个?没有数据库性能不同。这两种情况都发生在JVM中。此
@CreationTimestamp
@UpdateTimestamp
注释专门设计用于
创建日期时间
更新日期时间
列。它们还只支持
java.time.LocalDate
java.time.LocalDateTime
java.util.Date
java.util.Calendar
java.sql.Date
java.sql.time
java.sql.Timestamp
。Hibernate在
保存
更新
时初始化它们
@PrePersist
@PreUpdate
注释是JPA实体事件侦听器。只要对它们进行初始化,就可以将它们与任何类型一起使用。