问题描述
我正在使用 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 (将#修改为@)