From 1699cc611f97832823fcc233ad3fe1e62741bd33 Mon Sep 17 00:00:00 2001 From: oyo Date: Wed, 25 Jun 2025 15:23:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20llms-full.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- llms-full.txt | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/llms-full.txt b/llms-full.txt index 7785503..3ad3efb 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -323,7 +323,7 @@ DateTime endTime; //会议结束时间 MeetingRoomWithMeetingVo{ Long id;// 会议室id String name;// 会议室名称 - List meetingList{ //反向注入的用该会议室的会议信息,TOCO自动生成的内部VO,派生自MeetingBaseDTo + List meetingList{ //反向注入的用该会议室的会议信息,TOCO自动生成的内部VO,派生自MeetingBaseDto Long id;// 会议id String title; //会议标题 DateTime startTime; //会议开始时间 @@ -331,9 +331,30 @@ 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时会包含该字段;extendFieldList中,name为继承字段的名称,如果DTO中的字段为DTO或List类型,则extendFieldList中会有一个vo结构,用来表示该字段DTO类型派生出的VO定义 +- **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类型,则VO中的字段类型将与DTO字段一致,如果DTO中的字段为DTO或List类型,由于VO中的字段类型不能为DTO,**必须**将该DTO转换为VO才可作为VO字段使用,所以extendFieldList中会有**一个vo结构**,用来表示该字段DTO类型派生出的VO定义 示例如下: -- meeting_with_room_vo +系统中存在meeting_detail_dto +```json +{ + "uuid": "cd55c96b-aa67-bfb2-7614-70b503a8f8bf", + "name": "meeting_detail_dto", + "fromEntity": "meeting", + "description": "会议详情", + "expandList": [ + { + "field": "create_user_id", + "fieldName": "create_user", + "dto": { + "uuid": "53bb59cf-1ed2-6fb3-9f61-895b638903d8", + "name": "user_base_dto", + "fromEntity": "user", + "description": "用户基本信息" + } + } + ] +} +``` +- meeting_with_room_vo由meeting_detail_dto派生,并继承了id和create_user字段 ```json { "vo": { @@ -445,7 +466,7 @@ DateTime endTime; //会议结束时间 } ``` -示例中meeting_with_room_vo为根VO,但没有uuid,为待创建的根VO。meeting_room_with_meetings_vo和meeting_base_vo为meeting_with_room_vo的子VO,无法被其他根VO引用,且没有uuid。 +示例中meeting_with_room_vo为根VO,但没有uuid,为待创建的根VO。meeting_room_with_meetings_vo和meeting_base_vo为meeting_with_room_vo的子VO,无法被其他根VO引用,且没有uuid。另外特别注意:metting_with_room_vo的extendFieldList中create_user结构含有一个vo,是因为在派生源meeting_detail_dto中create_user字段为user_base_dto类型,所以在metting_with_room_vo中,该继承字段类型需要变为由user_base_dto派生出的VO结构。 - **派生源默认使用BaseDTO:** 除非用户指定了VO的派生源DTO,否则创建VO时只可以用**BaseDTO**为派生源。 - **与DTO的转换关系:** 在创建一个**有派生源的**VO后,TOCO会在生成代码时自动生成2种convert方法:1.基础convert方法,从DTO转换为VO,仅转换结构以及基本类型字段的get/set,方法命名为convertTo${VoName}、convertTo${VoName}List、convertTo${VoName}Map,其中**Map转换方法**为底层批量方法,通常也是自定义字段逻辑编写的位置(复用性好,会被其他convert方法调用),单个和列表convert方法都通过**调用Map方法**来实现;2.带数据拼装逻辑的convert方法,内部会**自动**调用基础convert方法从DTO转换为VO并设置基本类型字段数据,然后再根据外键**自动**获取**扩展字段**的数据以拼装最终数据,方法命名为convertAndAssembleData、convertAndAssembleDataList,也就是说这两个方法已经**自动**获取了所有**继承字段**和**扩展字段**的数据)。这2种方法对应的代码会生成在VO对应的Converter类中