Files
prompts/java-orm.md
2026-07-25 16:09:54 +08:00

1.9 KiB
Raw Blame History

实体类与数据库表书写规范

  • 数据库表结构字段名称、实体类字段名称,采用驼峰与下划线映射的方式。
  • 实体类字段包含@NotNull注解,需要结合@Schema注解中的defaultValue属性判断是否需要设置默认值。
  • 主键列是否采用MySQL自增序列取决于实体类被@TableId注解修饰的字段,要看其type属性,如果是IdType.AUTO则使用自增,否则不需要。
  • 如果@Schema注解指定了maxLength属性,按如下原则设置字段类型:
    • 数值小于或等于2000使用VARCHAR
    • 数值大于2000且小于10000使用TEXT
    • 数值大于10000使用LONGTEXT
  • 实体类的属性类型与表结构的字段类型映射关系:
    • String默认VARCHAT(255)
    • Long默认BIGINT
    • Integer默认INT
    • LocalDate默认DATE
    • LocalDateTime默认DATETIME
    • @TableField注解中typeHandler等于JacksonTypeHandler.class表结构字段默认JSON类型
    • BigDecimal默认DECIMAL(14, 2)

请根据以上规范结合下文代码示例生成建表语句和Java实体类代码。

MySQL建表语句示例

CREATE TABLE `example_table` (
    `id` BIGINT NOT NULL COMMENT 'ID',
    `str_field` VARCHAR(32) NOT NULL COMMENT '字符串`,
    `int_field` INT DEFAULT NULL COMMENT '整数`,
    `long_field` BIGINT DEFAULT NULL COMMENT '长整数`,
    `decimal_field` DECIMAL(14, 2) DEFAULT NULL COMMENT '高精度浮点数`,
    `date_field` DATE NOT NULL COMMENT '日期类型`,
    `time_field` DATETIME NOT NULL COMMENT '日期类型`,
    `state` VARCHAR(32) NOT NULL COMMENT '状态only_read、read_write',
    `json_field` JSON DATETIME NULL COMMENT 'JSON类型'
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='示例表';

Java实体类示例

java-bean.md

枚举类代码示例

java-enums.md