package com.jeff.tianti.common.entity; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.MappedSuperclass; import javax.persistence.PrePersist; import javax.persistence.PreUpdate; import org.apache.commons.lang3.StringUtils; /** * 定义实体的基础公共属性,所有实体都会继承. * @author Jeff Xu * @since 2015-12-09 */ @MappedSuperclass public class BaseEntity extends MysqlSequenceIdEntity implements Serializable{ private static final long serialVersionUID = -4498233384948128317L; //逻辑删除标识位—已删除状态 public static final String DELETE_FLAG_DELETED = "1"; //逻辑删除标识位—未删除状态 public static final String DELETE_FLAG_NORMAL = "0"; //审核状态标识位—未审核 public static final String AUDIT_FLAG_NOT = "0"; //审核状态标识位—审核通过 public static final String AUDIT_FLAG_PASS = "1"; //审核状态标识位—审核通不过 public static final String AUDIT_FLAG_FAIL = "2"; /** * 创建日期 */ protected Date createDate; /** * 修改日期 */ protected Date updateDate; /** * 删除标志(0-正常,1-删除) * @return */ protected String deleteFlag; /** * 审核状态(0-未审核,1-审核通过,2-审核不通过) * @return */ protected String auditFlag; @Column(name = "create_date", updatable = false) public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } @Column(name = "update_date") public Date getUpdateDate() { return updateDate; } public void setUpdateDate(Date updateDate) { this.updateDate = updateDate; } @Column(name = "delete_flag",length=1) public String getDeleteFlag() { return deleteFlag; } public void setDeleteFlag(String deleteFlag) { this.deleteFlag = deleteFlag; } @Column(name = "audit_flag",length=2) public String getAuditFlag() { return auditFlag; } public void setAuditFlag(String auditFlag) { this.auditFlag = auditFlag; } @Override public boolean equals(Object object) { if (object == null) { return false; } if (object instanceof BaseEntity) { BaseEntity baseEntity = (BaseEntity) object; if (this.getId() == null || baseEntity.getId() == null) { return false; } else { return (this.getId().equals(baseEntity.getId())); } } return false; } @Override public int hashCode() { return id == null ? System.identityHashCode(this) : (this.getClass().getName() + this.getId()).hashCode(); } @PrePersist public void prePersist() { if(this.createDate == null){ this.setCreateDate(new Date()); } this.setUpdateDate(new Date()); if(StringUtils.isBlank(this.getDeleteFlag())){ this.setDeleteFlag(BaseEntity.DELETE_FLAG_NORMAL); } } @PreUpdate public void preUpdate() { this.setUpdateDate(new Date()); } }