Jay
2024-10-08 79914dabac38d83676ea16ff65da8d941a099285
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.infra.dal.dataobject.codegen;
H 2
3 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
4 import com.iailab.module.infra.enums.codegen.CodegenColumnHtmlTypeEnum;
5 import com.iailab.module.infra.enums.codegen.CodegenColumnListConditionEnum;
6 import com.baomidou.mybatisplus.annotation.KeySequence;
7 import com.baomidou.mybatisplus.annotation.TableId;
8 import com.baomidou.mybatisplus.annotation.TableName;
9 import com.baomidou.mybatisplus.generator.config.po.TableField;
10 import lombok.Data;
11 import lombok.EqualsAndHashCode;
12 import lombok.experimental.Accessors;
13
14 /**
15  * 代码生成 column 字段定义
16  *
17  * @author iailab
18  */
19 @TableName(value = "infra_codegen_column", autoResultMap = true)
20 @KeySequence("infra_codegen_column_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
21 @Data
22 @Accessors(chain = true)
23 @EqualsAndHashCode(callSuper = true)
24 public class CodegenColumnDO extends BaseDO {
25
26     /**
27      * ID 编号
28      */
29     @TableId
30     private Long id;
31     /**
32      * 表编号
33      * <p>
34      * 关联 {@link CodegenTableDO#getId()}
35      */
36     private Long tableId;
37
38     // ========== 表相关字段 ==========
39
40     /**
41      * 字段名
42      *
43      * 关联 {@link TableField#getName()}
44      */
45     private String columnName;
46     /**
47      * 数据库字段类型
48      *
49      * 关联 {@link TableField.MetaInfo#getJdbcType()}
50      */
51     private String dataType;
52     /**
53      * 字段描述
54      *
55      * 关联 {@link TableField#getComment()}
56      */
57     private String columnComment;
58     /**
59      * 是否允许为空
60      *
61      * 关联 {@link TableField.MetaInfo#isNullable()}
62      */
63     private Boolean nullable;
64     /**
65      * 是否主键
66      *
67      * 关联 {@link TableField#isKeyFlag()}
68      */
69     private Boolean primaryKey;
70     /**
71      * 排序
72      */
73     private Integer ordinalPosition;
74
75     // ========== Java 相关字段 ==========
76
77     /**
78      * Java 属性类型
79      *
80      * 例如说 String、Boolean 等等
81      *
82      * 关联 {@link TableField#getColumnType()}
83      */
84     private String javaType;
85     /**
86      * Java 属性名
87      *
88      * 关联 {@link TableField#getPropertyName()}
89      */
90     private String javaField;
91     /**
92      * 字典类型
93      * <p>
94      * 关联 DictTypeDO 的 type 属性
95      */
96     private String dictType;
97     /**
98      * 数据示例,主要用于生成 Swagger 注解的 example 字段
99      */
100     private String example;
101
102     // ========== CRUD 相关字段 ==========
103
104     /**
105      * 是否为 Create 创建操作的字段
106      */
107     private Boolean createOperation;
108     /**
109      * 是否为 Update 更新操作的字段
110      */
111     private Boolean updateOperation;
112     /**
113      * 是否为 List 查询操作的字段
114      */
115     private Boolean listOperation;
116     /**
117      * List 查询操作的条件类型
118      * <p>
119      * 枚举 {@link CodegenColumnListConditionEnum}
120      */
121     private String listOperationCondition;
122     /**
123      * 是否为 List 查询操作的返回字段
124      */
125     private Boolean listOperationResult;
126
127     // ========== UI 相关字段 ==========
128
129     /**
130      * 显示类型
131      * <p>
132      * 枚举 {@link CodegenColumnHtmlTypeEnum}
133      */
134     private String htmlType;
135
136 }