Hidewnd Docs Hidewnd Docs
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
  • Cursor
  • Rules

    • caching-and-distributed-lock
    • database-entity-annotations
    • design-patterns
    • idempotency-specification
    • java-21-language-specification
    • java-clean-code-effective-java-spec
    • java-entity-vo-specification
      • 1. 实体类注解规范
      • 2. 状态与类型常量
      • 3. VO 设计规范
      • 4. 文案与格式一致性
    • java-language-specification
    • logging-specification
    • openapi-and-api-doc-spec
    • persistence-repository-specification
    • rest-api-specification
    • springboot-architecture-layering
    • springboot-config-and-profiles
    • springboot-exception-and-error-code
    • springboot-testing-specification
    • validation-specification
  • Setting

  • Skill

  • Cursor
  • Rules
hidewnd
目录

Java 实体与 VO 规范

# Java 实体与 VO 规范

# 1. 实体类注解规范

  • 类级注解:实体类使用 @TableName 指定表名,使用 @Schema(description = "表说明") 与表 COMMENT 一致
  • 字段级注解:字段使用 @Schema(description = "与表字段 COMMENT 一致"),含可选项时与 SQL 注释保持同一格式
  • 主键字段:使用 @TableId 标注主键字段,与数据库主键定义一致
@Data
@TableName("sys_user")
@Schema(description = "用户信息表")
public class SysUser extends BaseEntity {

    @Schema(description = "用户 ID")
    @TableId
    private Long userId;

    @Schema(description = "帐号状态(0:正常|1:停用)")
    private String status;
}
1
2
3
4
5
6
7
8
9
10
11
12

# 2. 状态与类型常量

  • 可选项字段常量化:对状态、类型等枚举字段在实体类或独立常量类中声明 public static final 常量
  • 命名约定:使用大写下划线形式,如 STATUS_NORMAL、STATUS_DISABLE
  • 文案一致性:常量注释与 SQL 注释及 @Schema 描述保持一致
@Data
@TableName("sys_user")
@Schema(description = "用户信息表")
public class SysUser extends BaseEntity {

    /** 帐号状态 正常 */
    public static final String STATUS_NORMAL = "0";

    /** 帐号状态 停用 */
    public static final String STATUS_DISABLE = "1";

    @Schema(description = "帐号状态(0:正常|1:停用)")
    private String status;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 3. VO 设计规范

  • 职责划分:实体类用于持久化,VO 用于接口入参与出参,两者字段可以重叠但职责不要混用
  • 注解使用:VO 不绑定持久化注解,主要使用 @Schema 与校验注解表达接口契约
  • 转换方式:通过 MapStruct 或装配器类实现实体与 VO 的双向转换
@Data
@Schema(description = "用户信息响应 VO")
public class UserRespVO {

    @Schema(description = "用户 ID")
    private Long userId;

    @Schema(description = "用户昵称")
    private String nickname;

    @Schema(description = "帐号状态(0:正常|1:停用)")
    private String status;
}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 4. 文案与格式一致性

  • 字段文本一致:SQL COMMENT、实体 @Schema、VO @Schema 描述优先保持完全一致
  • 可选项格式一致:统一使用 说明(0:含义一|1:含义二) 格式,避免同一字段在多处出现不同写法
  • 约定小结:状态与类型字段在数据库注释、实体注解与常量定义间保持一一对应关系
java-clean-code-effective-java-spec
java-language-specification

← java-clean-code-effective-java-spec java-language-specification→

github
Theme by Vdoing | Copyright © 2024-2026 Hidewnd
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式