0
点赞
收藏
分享

微信扫一扫

简单实现JPA实体继承映射


一个简单实现

父类加注解:@MappedSuperclass

@MappedSuperclass
public class Traceability implements Serializable {

    /**
     * 创建时间
     **/
    private Date createDt;

    /**
     * 更新时间
     **/
    private Date updateDt;

    /**
     * 创建人员
     **/
    private String createBy;

    /**
     * 更新人员
     **/
    private String updateBy;


    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "create_dt")
    public Date getCreateDt() {
        return createDt;
    }

    public void setCreateDt(Date createDt) {
        this.createDt = createDt;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "update_dt")
    public Date getUpdateDt() {
        return updateDt;
    }

    ……

    /**
     * 自动设置 createBy,updateBy,createDt,updateDt
     * 标记对象可追溯信息,时间,操作人
     *
     * @param isCreate 是否为创建当前对象
     */
    public Traceability trace(boolean isCreate) {
        String defaultOperator = "system";
        Date now = new Date();
        if (isCreate) {
            if (StringUtils.isEmpty(this.createBy)) {
                this.createBy = defaultOperator;
            }
            this.createDt = now;
        } else {
            this.createBy = null;
            this.createDt = null;
        }
        if (StringUtils.isEmpty(this.updateBy)) {
            this.updateBy = defaultOperator;
        }
        this.updateDt = now;
        return this;
    }

}

子类直接继承父类即可

@Entity
@Table(name = "om_member")
public class Member extends Traceability{
……

Traceability里面的属性就能加入到om_member表里面。

扩展


举报

相关推荐

0 条评论