微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring boot JPA 审计覆盖自动生成 CreatedDate 和 LastModifiedDa

如何解决Spring boot JPA 审计覆盖自动生成 CreatedDate 和 LastModifiedDa

我正在使用 JPA 审计 (@EnableJpaAuditing) 为我自动生成 createdDate 和 LastModifiedDate。但是其中一项要求要求我从应用程序上传离线数据并与服务器同步,它需要在创建/修改期间将客户端的 createdDate 和 LastModifiedDate 插入表中。不幸的是,我发现它不起作用,因为 jpa 框架将始终生成自己的 createdDate 和 LastModifiedDate。

有没有办法让 JPA 审计只在提供 null 时生成这些日期字段?谢谢。

DateAudit.java

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class DateAudit implements Serializable{
    private static final long serialVersionUID = 1L;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "created_at",nullable = false,updatable = false)
    @CreatedDate
    private Date createdAt;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "updated_at",nullable = false)
    @LastModifiedDate
    private Date updatedAt;
    
}

BookEntity.java

@Entity(name = "Books")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class BookEntity extends DateAudit{
    private static final long serialVersionUID = 903488645655479319L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Type(type = "uuid-char")
    @Column(columnDeFinition = "VARCHAR(36)",updatable = false,nullable = false)
    private UUID id;
    @Column(nullable = false)
    private String name;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。