更新 knowledge.md
This commit is contained in:
14
knowledge.md
14
knowledge.md
@@ -1484,8 +1484,18 @@ class CreateUserBto { //对应实体user
|
|||||||
- **修改建议:** 不修改service函数和FlowConfig,可修改FlowContext添加/修改出入参数,修改FlowNode中具体业务逻辑。
|
- **修改建议:** 不修改service函数和FlowConfig,可修改FlowContext添加/修改出入参数,修改FlowNode中具体业务逻辑。
|
||||||
|
|
||||||
#### **2.16 自定义查询**
|
#### **2.16 自定义查询**
|
||||||
- 读方案无法满足需求时,使用自定义查询
|
- 读方案无法满足需求时,使用自定义查询。读方案能力边界示例:
|
||||||
- 自定义查询使用复杂sql实现业务功能
|
- ✅ 可用读方案:
|
||||||
|
- 时间范围查询:start_time >= #startTime AND end_time <= #endTime
|
||||||
|
- 状态过滤:status != 'CANCELLED'
|
||||||
|
- exists子查询:EXISTS(SELECT 1 FROM other_table WHERE ...)
|
||||||
|
- count查询:SELECT COUNT(*) WHERE ...; SELECT COUNT(*) > 0 WHERE ...
|
||||||
|
- ❌ 必须自定义查询:
|
||||||
|
- GROUP BY聚合:SELECT room_id, COUNT(*) FROM meeting GROUP BY room_id
|
||||||
|
- 复杂函数:SELECT DATE_FORMAT(start_time, '%Y-%m') FROM meeting
|
||||||
|
- 1:N关系left join:SELECT * FROM meeting m LEFT JOIN meeting_agenda ma ON m.id = ma.meeting_id(如果是1:N关系)
|
||||||
|
- 自定义查询使用读方案能力边界之外的sql实现业务功能
|
||||||
|
- 自定义查询无法被TOCO管理,过度使用自定义查询会导致后续代码的维护困难,所以在使用自定义查询之前必须仔细分析是否可以使用读方案,并尽量使用读方案实现
|
||||||
- 数据访问层使用MyBatis、MyBatisPlus实现
|
- 数据访问层使用MyBatis、MyBatisPlus实现
|
||||||
- 自定义查询时框架不自动生成代码(需要手动编写全部代码)
|
- 自定义查询时框架不自动生成代码(需要手动编写全部代码)
|
||||||
- 各层代码位置严格遵守**3.2 项目结构与导航**,必须有mapper层、service层、DO对象、DTO对象,API返回数据必须有VO对象
|
- 各层代码位置严格遵守**3.2 项目结构与导航**,必须有mapper层、service层、DO对象、DTO对象,API返回数据必须有VO对象
|
||||||
|
|||||||
Reference in New Issue
Block a user