Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提取公共列(审核字段)[Java][JPA]_Java_Hibernate_Jpa - Fatal编程技术网

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

提取公共列(审核字段)[Java][JPA],java,hibernate,jpa,Java,Hibernate,Jpa,我们能否将诸如created by、created date、updated by、updated date之类的公共列提取为单独的POJO,并在我们的JPA实体中扩展此POJO 我试过了,但是扩展POJO中的列没有注册。想了解它发生的原因以及解决方法吗?最简单的方法是创建一个带有MappedSuperclass注释的公共超类: import java.util.Date; import javax.persistence.Column; import javax.persistence.Ent

我们能否将诸如created by、created date、updated by、updated date之类的公共列提取为单独的POJO,并在我们的JPA实体中扩展此POJO


我试过了,但是扩展POJO中的列没有注册。想了解它发生的原因以及解决方法吗?

最简单的方法是创建一个带有
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
…),或者您可以将这些方法直接添加到您的公共超类中