spring boot jpa @PreUpdate结合@DynamicUpdate使用的局限性
通常给实体添加audit审计字段是一种常用的重构方法,如下: @Embeddable @Setter @Getter @ToString public class Audit { /** * 操作人 */ private String operName; /** * 操作、更新时间 */ private LocalDateTime operDate; } public interface Auditable { Audit getAudit(); void setAudit(Audit audit); } /** * 监听器 回调方法 */ @Slf4j @Transactional public class AuditListener { @PrePersist @PreUpdate public void setCreatedOn(Auditable auditable) { Audit audit = auditable.getAudit(); if(audit == null) { audit = new Audit(); auditable.setAudit(audit); } audit.setOperName("hkk"); audit.setOperDate(LocalDateTime.now()); } } 实体类的定义 @Builder @Data