提取公共列(审计字段)[Java] [JPA]

时间:2017-06-23 09:24:23

标签: java hibernate jpa

我们可以将常见列提取,例如创建日期,更新日期,更新日期作为单独的POJO,并在我们的JPA实体中扩展此POJO。

我试了但是扩展POJO的列没有注册。想了解它为什么会发生,什么可以成为一种解决方法?

1 个答案:

答案 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 ...),或者您可以将这些方法直接添加到您的公共超类中。