我们可以将常见列提取,例如创建日期,更新日期,更新日期作为单独的POJO,并在我们的JPA实体中扩展此POJO。
我试了但是扩展POJO的列没有注册。想了解它为什么会发生,什么可以成为一种解决方法?
答案 0 :(得分:1)
最简单的方法是创建一个用MappedSuperclass
注释的公共超类:
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@MappedSuperclass
@EntityListeners(TraceAbleListener.class)
public class TraceAble {
@Temporal(TemporalType.TIMESTAMP)
private Date createdOn;
@Temporal(TemporalType.TIMESTAMP)
private Date updatedOn;
private String createdBy;
private String updatedBy;
//getters setters, or use lombok @Date
}
然后,您只需要创建一个具有相应JPA事件处理程序的实体侦听器来创建,更新日期,用户等(PrePersist, PreUpdate
...),或者您可以将这些方法直接添加到您的公共超类中。