# BaseEntity 字段说明 > **适用范围**:所有业务实体必须继承 `BaseEntity`,包含框架自动维护的标准字段。 ## 类定义 ```java package com.rui.common.mybatis.model; public class BaseEntity implements Serializable { // ... } ``` ## 字段列表 | 字段名 | 类型 | 说明 | 填充时机 | 数据库字段 | |--------|------|------|----------|------------| | `id` | `Long` | 主键ID,使用雪花算法生成 | 插入时自动填充 | `id` | | `tenantId` | `Long` | 租户ID,`0` 表示系统级 | 插入时自动填充 | `tenant_id` | | `deleted` | `Integer` | 逻辑删除标志,`0` 正常,`1` 已删除 | 插入时自动填充 | `deleted` | | `createdBy` | `Long` | 创建者ID | 插入时自动填充 | `created_by` | | `createdAt` | `LocalDateTime` | 创建时间 | 插入时自动填充 | `created_at` | | `updatedBy` | `Long` | 更新者ID | 插入/更新时自动填充 | `updated_by` | | `updatedAt` | `LocalDateTime` | 更新时间 | 插入/更新时自动填充 | `updated_at` | ## 注解说明 - `@TableId(type = IdType.ASSIGN_ID)` — 使用雪花算法分配 ID - `@TableLogic` — 逻辑删除字段,MyBatis Plus 自动处理删除逻辑 - `@TableField(fill = FieldFill.INSERT)` — 插入时自动填充 - `@TableField(fill = FieldFill.INSERT_UPDATE)` — 插入/更新时自动填充 ## 使用示例 ```java @Data public class User extends BaseEntity { private String username; private String email; // 无需定义 id、createdAt 等公共字段 } ``` ## 数据库建表示例 ```sql CREATE TABLE sys_user ( id BIGINT PRIMARY KEY COMMENT '主键ID(雪花算法)', username VARCHAR(100) NOT NULL COMMENT '用户名', email VARCHAR(100) COMMENT '邮箱', -- 公共字段(由 BaseEntity + MyBatis Plus 自动维护) tenant_id BIGINT DEFAULT 0 COMMENT '租户ID', deleted TINYINT DEFAULT 0 COMMENT '逻辑删除(0-正常,1-已删)', created_by BIGINT COMMENT '创建者ID', created_at DATETIME COMMENT '创建时间', updated_by BIGINT COMMENT '更新者ID', updated_at DATETIME COMMENT '更新时间' ) COMMENT='用户表'; ``` > **注意**:所有业务表必须包含以上公共字段。