更新 llms-full.txt
This commit is contained in:
@@ -651,6 +651,16 @@ DateTime endTime; //会议结束时间
|
|||||||
- **定义与用途:** 在TOCO中,针对DTO和VO,读方案描述了如何基于查询对象从数据库获取DTO和VO列表数据,主要提供了两个能力
|
- **定义与用途:** 在TOCO中,针对DTO和VO,读方案描述了如何基于查询对象从数据库获取DTO和VO列表数据,主要提供了两个能力
|
||||||
- 根据查询条件,返回符合条件的DTO或VO的id列表
|
- 根据查询条件,返回符合条件的DTO或VO的id列表
|
||||||
- 根据字段过滤条件,对DTO和VO的列表字段数据进行过滤
|
- 根据字段过滤条件,对DTO和VO的列表字段数据进行过滤
|
||||||
|
- 读方案能力边界
|
||||||
|
- 读方案的的查询能力是sql的简化,实现了部分sql的查询能力,仅支持Sql的 count、exists、left join, not、in、like、between、and、or、not 以及 ( ) , 以及排序 order by, 以及分页 limit ,offset, 不能使用group by, having , avg 等函数
|
||||||
|
- 在使用exists 和 left join的时候只能通过外键扩展,其中如果外键是1:N的时候,只能使用exist, 如果是1:1的时候则可以使用 left join 和 exists.
|
||||||
|
例如: 实体t 和他t1 ,t1存在列t_id为指向t的外键,如果外键关系为1:N,则 select * from t where exists (select * from t1 where t.id=t1.id) 合法; elect * from t left join t1 on t.id=t1.id 非法
|
||||||
|
- 在过滤字段的选择上,在使用exists的时候,在条件中只能选择后表的字段, 在使用 left join的时候,则可以使用前表和后表字段
|
||||||
|
例如: 实体 t (id,name) ,实体 t1 (id,name,t_id) ,t1存在列t_id为指向t的外键, select * from t where exists (select * from t1 where t.id=t1.id and t.name like ?) 非法, select * from t left join t1 on t.id=t1.id and t1.name like ? 合法
|
||||||
|
select * from t left join t1 on t.id=t1.id where t.name like ? 合法, select * from t left join t1 on t.id=t1.id where t1.name like ? 合法
|
||||||
|
- count语法的限制,count语法只能在最外层单独使用,如果使用了count语法,只能返回总的数量,不能返回其他字段
|
||||||
|
例如:select count(*) from t 合法, select count(*),t.name from t where t.name like ? 非法
|
||||||
|
- 如果需求在读方案的能力之外,可以使用 **2.16 自定义查询** 实现功能
|
||||||
- **特别注意** 对于根据主键,获取单个或者批量获取DTO或者VO,并且不需要对DTO、VO的列表字段数据进行过滤的需求,必须使用**DTO自动生成的预定义方法**,禁止使用读方案
|
- **特别注意** 对于根据主键,获取单个或者批量获取DTO或者VO,并且不需要对DTO、VO的列表字段数据进行过滤的需求,必须使用**DTO自动生成的预定义方法**,禁止使用读方案
|
||||||
- **关键配置:** 名称(小写字母+下划线,不要以read_plan结尾,全局唯一)、返回结构(DTO/VO,一个读方案**不能**同时返回多种DTO或VO)、查询条件的自然语言描述、是否生成计数方法、排序字段(如果选择不分页,则不需要)、过滤字段以及过滤条件。
|
- **关键配置:** 名称(小写字母+下划线,不要以read_plan结尾,全局唯一)、返回结构(DTO/VO,一个读方案**不能**同时返回多种DTO或VO)、查询条件的自然语言描述、是否生成计数方法、排序字段(如果选择不分页,则不需要)、过滤字段以及过滤条件。
|
||||||
- **与RPC、代码的关系:** 对于每一个返回DTO的读方案,TOCO会为每种分页方式自动生成一个RPC方法,其参数为对应的QTO,返回值为DTO列表;如果选择了生成计数方法,则还会在生成一个RPC,参数为QTO,返回值为符合条件的DTO数量。同样,对于每一个返回VO的读方案,TOCO会自动生成一个Java方法,其参数为对应的QTO,返回值为VO列表,方法内部逻辑已经由TOCO完全实现;如果选择了生成计数方法,则还会生成一个count方法,参数为QTO,返回值为符合条件的DTO数量,方法内部逻辑已经由TOCO完全实现
|
- **与RPC、代码的关系:** 对于每一个返回DTO的读方案,TOCO会为每种分页方式自动生成一个RPC方法,其参数为对应的QTO,返回值为DTO列表;如果选择了生成计数方法,则还会在生成一个RPC,参数为QTO,返回值为符合条件的DTO数量。同样,对于每一个返回VO的读方案,TOCO会自动生成一个Java方法,其参数为对应的QTO,返回值为VO列表,方法内部逻辑已经由TOCO完全实现;如果选择了生成计数方法,则还会生成一个count方法,参数为QTO,返回值为符合条件的DTO数量,方法内部逻辑已经由TOCO完全实现
|
||||||
@@ -1324,7 +1334,10 @@ requestParams为请求参数列表,response为返回结构,requestParams中
|
|||||||
- **例子:**
|
- **例子:**
|
||||||
- 用户登录,在UserFlowService中生成一个函数invokeLoginFlow,该函数通过流程框架根据流程定义调用LoginNode,LoginNode中封装了用户登录的逻辑,LoginFlowContext中封装了用户登录的参数和结果。
|
- 用户登录,在UserFlowService中生成一个函数invokeLoginFlow,该函数通过流程框架根据流程定义调用LoginNode,LoginNode中封装了用户登录的逻辑,LoginFlowContext中封装了用户登录的参数和结果。
|
||||||
- **修改建议:** 不修改 service 中的函数, 不修改FlowConfig, 可以修改FlowContext, 添加/修改出入参数, 修改FlowNode中的具体业务逻辑。
|
- **修改建议:** 不修改 service 中的函数, 不修改FlowConfig, 可以修改FlowContext, 添加/修改出入参数, 修改FlowNode中的具体业务逻辑。
|
||||||
|
#### **2.16 自定义查询**
|
||||||
|
- 在读方案无法满足需求的情况下,可以使用自定义查询
|
||||||
|
- 自定义查询使用MyBatis、MyBatisPlus实现
|
||||||
|
- 各层的代码位置严格遵守章节:**3.2 项目结构与导航**,必须有mapper层、service层、必须有DO对象、必须有DTO对象,如果是API返回数据,必须有VO对象
|
||||||
### **3 生成代码产物补充说明**
|
### **3 生成代码产物补充说明**
|
||||||
- **3.1 支持的语言/框架**
|
- **3.1 支持的语言/框架**
|
||||||
Java、SpringBoot、MyBatis-plus(读)、Hibernate(写)
|
Java、SpringBoot、MyBatis-plus(读)、Hibernate(写)
|
||||||
|
|||||||
Reference in New Issue
Block a user