首页 > 解决方案 > Spring Data REST - POST 后的 Null 字段 - 我应该何时/在何处初始化它们?

问题描述

我的 NoteRepository 扩展了 CrudRepository<Note, Long>。Note 具有标题、noteBody 和 dateCreated。对 /notes 的 POST 请求将包括标题和 noteBody,并且我希望 dateCreated 自动成为 LocalDateTime.now()。

是否可以接受

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

还是我应该以不同的方式来做?

标签: javaspring-dataspring-data-rest

解决方案


您不需要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包中可用。当您保存实体的实例时,不要初始化它们。


推荐阅读