diff --git a/llms-full.txt b/llms-full.txt index 8c3d321..09cb87a 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -649,18 +649,19 @@ DateTime endTime; //会议结束时间 } #### **2.9 读方案 (ReadPlan)** -- **定义与用途:** 在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 语法,不支持使用函数 + - 读方案的的查询能力是sql的简化,实现了部分sql的查询能力,仅支持sql的 count、exists、left join, not、in、like、between、and、or、not 以及 ( ) , 以及排序 order by, 以及分页 limit ,offset, 不能使用group by, having 语法,不支持使用其他函数 - 在使用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 ? 合法 -- 在选择使用度方案的时候**必须**符合度方案能力编辑,如果需求在读方案的能力之外,必须使用 **2.16 自定义查询** 实现功能 +- 在选择使用度方案的时候**必须**符合读方案能力边界,如果需求在读方案的能力之外,必须使用 ** [2.16 自定义查询] ** 实现功能 - **特别注意** 对于根据主键,获取单个或者批量获取DTO或者VO,并且不需要对DTO、VO的列表字段数据进行过滤的需求,必须使用**DTO自动生成的预定义方法**,禁止使用读方案 - **关键配置:** 名称(小写字母+下划线,不要以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完全实现