书接上文,SpringBoot JPA自动设置创建时间、修改时间,审计不可能只包含创建时间、最后修改时间,肯定得有人,也就是必须得有创建者、最后修改者。
Spring Data Jpa设置创建者、最后修改者也非常简单。
实体修改
@Data
@Entity
@Table(name = "Book")
@EntityListeners(AuditingEntityListener.class)
public class Book {
@Id
private long id;
private String name;
private String author;
private BigDecimal price;
@CreatedDate
private Timestamp createdDate;
@CreatedBy
private String createBy;
@LastModifiedDate
private Timestamp lastModifiedDate;
@LastModifiedBy
private String lastModifiedBy;
}
@CreatedBy
注解用于标识创建者。@LastModifiedBy
注解用于标识最后修改者。
其他注解跟设置创建时间、最后修改时间一致,不再赘述,这里重点说一下,如何获取创建者、最后修改者。
设置创建者、最后修改者值
在Spring Data Jpa中,可以通过实现AuditorAware
接口让程序知道当前审核程序的用户,实现逻辑根据项目实际情况编写。
/**
* 审计接口,获取当前人员
*/
@Configuration
public class JpaAuditWare implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
return Optional.of(UUID.randomUUID().toString());
}
}
验证
创建验证
@GetMapping("save")
public Book saveBook() {
Book book = new Book();
book.setId(1L);
book.setName("《山海经》");
book.setAuthor("佚名");
book.setPrice(new BigDecimal("500"));
return bookService.saveBook(book);
}
修改验证
然后我们修改一下数据,验证一下最后修改人、最后修改时间
[alt type="info"]如果数据未发生改变,那么最后修改者、最后修改时间是不会发生改变的。[/alt]
评论 (0)