package com.example.model; import java.io.Serializable; import java.util.Date; /** * 基础实体类 * 包含所有实体通用的字段和方法 */ public abstract class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; private Long id; private Date createdAt; private Date updatedAt; private Boolean active; public BaseEntity() { // 默认为激活状态 this.active = true; // 默认设置创建和更新时间 Date now = new Date(); this.createdAt = now; this.updatedAt = now; } /** * 判断实体是否为新建(未持久化)状态 */ public boolean isNew() { return id == null; } /** * 判断实体是否为激活状态 */ public boolean isActive() { return active == null ? false : active; } /** * 激活实体 */ public void activate() { this.active = true; this.updatedAt = new Date(); } /** * 停用实体 */ public void deactivate() { this.active = false; this.updatedAt = new Date(); } /** * 更新实体的最后修改时间 */ public void touch() { this.updatedAt = new Date(); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getCreatedAt() { return createdAt; } public void setCreatedAt(Date createdAt) { this.createdAt = createdAt; } public Date getUpdatedAt() { return updatedAt; } public void setUpdatedAt(Date updatedAt) { this.updatedAt = updatedAt; } public Boolean getActive() { return active; } public void setActive(Boolean active) { this.active = active; } }