在JPA中,有@PrePersist和@PreUpdate注释允许在CRUD操作之前进行操作。 我试图找出与此相当的ApsectJ。
我的用例是由一个团队构建的JPA应用程序,现在想要为每个Pre-Persist和Pre-Update添加一个Audit Aspect,而不向原始Entity添加生命周期监听器。
答案 0 :(得分:2)
如果实体没有@PrePersist和@PreUpdate方法,您可以使用AspectJ intertype声明(ITD)来介绍这些方法。
public aspect Audit {
declare parents: @Entity * implements AuditedEntity;
public interface AuditedEntity {}
@PrePersist
public void AuditedEntity.prePersistAuditing() {
... auditing logic
}
... similar code for @PreUpdate
}
如果实体已经拥有这些方法,您可以建议那些人进行审核。