package com.yihu.jw.entity; import com.fasterxml.jackson.annotation.JsonFormat; import javax.persistence.*; import java.io.Serializable; import java.util.Date; /** * Entity - 基类(自动递增) */ @MappedSuperclass @EntityListeners(IdentityEntityListener.class) public abstract class BaseIdentityEntity implements Serializable { private static final long serialVersionUID = -67188388306700736L; /** 创建日期 */ private Date createTime; /** * 最后修改时间 */ private Date lastUpdateTime; // 非业务主键 protected Long id; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id", unique = true, nullable = false) public Long getId() { return id; } public void setId(Long id) { this.id = id; } @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Column(name = "create_time", nullable = false, updatable = false) public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @Column(name = "last_update_time", nullable = false) public Date getLastUpdateTime() { return lastUpdateTime; } public void setLastUpdateTime(Date lastUpdateTime) { this.lastUpdateTime = lastUpdateTime; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (this == obj) { return true; } if (!BaseIdentityEntity.class.isAssignableFrom(obj.getClass())) { return false; } BaseIdentityEntity other = (BaseIdentityEntity) obj; return getId() != null ? getId().equals(other.getId()) : false; } @Override public int hashCode() { int hashCode = 17; hashCode += null == getId() ? 0 : getId().hashCode() * 31; return hashCode; } }