更新 llms-full.txt

This commit is contained in:
oyo
2025-06-24 19:15:04 +08:00
parent 2b88e4505b
commit 417abbbae5

View File

@@ -283,7 +283,7 @@ DateTime endTime //会议结束时间
#### **2.7 视图对象 (VO)** #### **2.7 视图对象 (VO)**
- **定义与用途:** 在TOCO中VO表达某个BaseDTO(如果用户指明派生源也可使用其他DTO)为派生源通过外键关系不断关联多个BaseDTO的数据结构。VO用于在视图层与前端之间进行数据传输往往被当做HTTP API的返回值、或读方案的返回值使用由服务端返回至前端。注意VO不能作为RPC的返回值。 - **定义与用途:** 在TOCO中VO表达某个BaseDTO(如果用户指明派生源也可使用其他DTO)为派生源通过外键关系不断关联多个BaseDTO的数据结构。VO用于在视图层与前端之间进行数据传输往往被当做HTTP API的返回值、或读方案的返回值使用由服务端返回至前端。注意VO不能作为RPC的返回值。
- **关键配置:** 名称(以Vo结尾)、根Entity、派生源、字段列表。VO中的字段分为三种a.继承DTO的字段和DTO的字段类型一样b.扩展字段含正向替换和反向注入字段类型为VO或List<VO>;c.自定义字段类型为基本类型或VO类型。VO中的字段来源于DTO可以根据页面需要将无用字段进行裁剪可以根据外键关系扩展其他BaseDto(详见**字段扩展方式**)。如果在派生源中没有合适字段且明确无法通过外键扩展外部BaseDto的情况下可增加对应的自定义字段 - **关键配置:** 名称(以Vo结尾)、根Entity、派生源、字段列表。VO中的字段分为三种a.继承DTO的字段如果DTO中的字段为基础类型或EO、Enum则VO中的继承字段和和DTO的字段类型一样如果DTO中的字段为DTO或List<DTO>类型则继承字段为字段对应的DTO类型派生出的VO或List<VO>类型b.扩展字段含正向替换和反向注入字段类型为VO或List<VO>;c.自定义字段类型为基本类型或VO类型。VO中的字段来源于DTO可以根据页面需要将无用字段进行裁剪可以根据外键关系扩展其他BaseDto(详见**字段扩展方式**)。如果在派生源中没有合适字段且明确无法通过外键扩展外部BaseDto的情况下可增加对应的自定义字段
- **与DTO的区别 (在TOCO语境下): **DTO用于服务层传输通常作为RPC的返回值与数据模型更近复用性较强VO用于视图层传输通常作为API的返回值与UI展示更为接近复用性较弱。 - **与DTO的区别 (在TOCO语境下): **DTO用于服务层传输通常作为RPC的返回值与数据模型更近复用性较强VO用于视图层传输通常作为API的返回值与UI展示更为接近复用性较弱。
- **如何创建/生成:** VO通常由某个BaseDTO以及外键关系为基础派生也可以直接创建和DTO无关、内部全为自定义字段的VO尽量少用只为应对某些特殊页面需要组装一组完全无关的返回数据的场景 - **如何创建/生成:** VO通常由某个BaseDTO以及外键关系为基础派生也可以直接创建和DTO无关、内部全为自定义字段的VO尽量少用只为应对某些特殊页面需要组装一组完全无关的返回数据的场景
- **根VO和子VO:**TOCO中的VO分为两种1.根VO指最外层的VO结构需要经由TOCO创建有uuid作为唯一标识根VO可被其他根VO或子VO引用2.子VO某个根VO的内部嵌套VO通过外键关系关联BaseDTO之后由TOCO自动创建只附属于某个根VO只能被这一个根VO引用且没有uuid。所以在TOCO中我们需要描述VO要的字段、扩展关系并通过**创建根VO**的行为使TOCO**自动创建**其子VO或引用其他根VO即可完成一个复杂嵌套VO的创建过程无需单独创建子VO。 - **根VO和子VO:**TOCO中的VO分为两种1.根VO指最外层的VO结构需要经由TOCO创建有uuid作为唯一标识根VO可被其他根VO或子VO引用2.子VO某个根VO的内部嵌套VO通过外键关系关联BaseDTO之后由TOCO自动创建只附属于某个根VO只能被这一个根VO引用且没有uuid。所以在TOCO中我们需要描述VO要的字段、扩展关系并通过**创建根VO**的行为使TOCO**自动创建**其子VO或引用其他根VO即可完成一个复杂嵌套VO的创建过程无需单独创建子VO。
@@ -331,7 +331,8 @@ DateTime endTime //会议结束时间
} }
} }
``` ```
- **TOCO中json结构描述:** 在TOCO中VO使用一个json结构表示该结构可用于理解VO的含义或作为创建、更新VO工具的参数。部分字段的含义为expandList为正向替换reverseExpandList为反向注入extendFieldList为继承自派生源DTO的字段customFieldList为自定义字段。expandListList中field为正向替换对应的本表外键字段的名字fieldName为正向替换之后给该字段的起的新名字reverseExpandList中field为反向注入对应的他表外键字段的名字fieldName为反向注入之后给该字段的起的新名字customFieldList中uuid为自定义字段特有的UUID创建DTO的时候不需要填入因为TOCO会自动为其分配UUID更新DTO的时候需要传入用于定位需要更新的自定义字段typeUuid参数对应类结构的UUID当type为List且innerType=Enum、Eo时会包含该字段。示例如下: - **TOCO中json结构描述:** 在TOCO中VO使用一个json结构表示该结构可用于理解VO的含义或作为创建、更新VO工具的参数。部分字段的含义为expandList为正向替换reverseExpandList为反向注入extendFieldList为自派生源DTO的字段customFieldList为自定义字段。expandListList中field为正向替换对应的本表外键字段的名字fieldName为正向替换之后给该字段的起的新名字reverseExpandList中field为反向注入对应的他表外键字段的名字fieldName为反向注入之后给该字段的起的新名字customFieldList中uuid为自定义字段特有的UUID创建DTO的时候不需要填入因为TOCO会自动为其分配UUID更新DTO的时候需要传入用于定位需要更新的自定义字段typeUuid参数对应类结构的UUID当type为List且innerType=Enum、Eo时会包含该字段extendFieldList中name为继承字段的名称如果DTO中的字段为DTO或List<DTO>类型则extendFieldList中会有一个vo结构用来表示该字段DTO类型派生出的VO定义
示例如下:
- meeting_with_room_vo - meeting_with_room_vo
```json ```json
{ {
@@ -348,7 +349,25 @@ DateTime endTime //会议结束时间
"name": "id" "name": "id"
}, },
{ {
"name": "title" "name": "create_user",
"vo": {
"name": "user_base_vo",
"description": "用户信息",
"isRootVo": false,
"fromEntity": "user",
"fromDto": "user_base_dto",
"fromDtoUuid": "53bb59cf-1ed2-6fb3-9f61-895b638903d8",
"reverseExpandList": [],
"customFieldList":[],
"extendFieldList":[
{
"name": "name"
},
{
"name": "gender"
}
]
}
} }
], ],
"expandList": [ "expandList": [