@CreatedDate 注释 spring 与 Liquibase

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

我的实体类中有这些字段:

导入 org.springframework.data.annotation.CreatedDate; 导入 org.springframework.data.annotation.LastModifiedDate;

@CreatedDate
private Instant createdDate;

@LastModifiedDate
private Instant lastModifiedDate;

我正在使用 Liquibase。 当我运行 liqubase 时,日期将起作用并设置为字段。

但是当我使用邮递员通过端点创建新实体时,它将无法工作。 在请求中,我没有编写日期,它应该自动设置日期和时间。 我没有使用任何其他配置或 JpaAuditings 或侦听器。 我应该写一些配置吗? 我正在使用这个基于注释的审计元数据,我是否误解了文档?

java spring-data-jpa liquibase auditing datecreated
1个回答
0
投票

我认为您忘记了

@EntityListeners(AuditingEntityListener.class)
@EnableJpaAuditing
注释。

首先需要用
@EnableJpaAuditing
注释
@Configuration
:

@Configuration
@EnableJpaAuditing
public class AuditingConfig {
}

然后你应该用`@EntityListeners(AuditingEntityListener.class)`声明你的实体类:
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public class Foo {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private String name;

    @CreatedDate
    @Column(updatable = false)
    private LocalDateTime createdAt;

    @LastModifiedDate
    private LocalDateTime updatedAt;
}
© www.soinside.com 2019 - 2024. All rights reserved.