Skip to content

Commit fd264ce

Browse files
committed
docs(flexmodel): 删除云函数MVP设计方案文档
- 移除完整的Flexmodel Functions Runtime设计方案 - 删除架构概览、模块结构和数据模型定义 - 移除Deno端API设计和函数SDK设计说明 - 删除Worker隔离执行机制和安全边界描述 - 移除Java端实现细节和生命周期流程 - 清理实施步骤和验证方案内容
1 parent 264ca6b commit fd264ce

40 files changed

Lines changed: 5069 additions & 1057 deletions

‎docs/flexmodel-functions-runtime-plan.md‎

Lines changed: 0 additions & 971 deletions
This file was deleted.

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/mongodb/MongoDataService.java‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public int deleteAll(String modelName) {
135135

136136
@Override
137137
@SuppressWarnings({"rawtypes", "unchecked"})
138-
public Map<String, Object> findById(String modelName, Object id, List<String> expand) {
138+
public Optional<Map<String, Object>> findById(String modelName, Object id, List<String> expand) {
139139
String collectionName = getCollectionName(modelName);
140140
EntityDefinition entity = (EntityDefinition) sessionContext.getModelDefinition(modelName);
141141
TypedField<?, ?> idField = entity.findIdField().orElseThrow();
@@ -149,11 +149,11 @@ public Map<String, Object> findById(String modelName, Object id, List<String> ex
149149
nestedQuery(List.of(dataMap), this::queryAsMapList, (ModelDefinition) sessionContext.getModelDefinition(modelName),
150150
childQuery, sessionContext.getNestedQueryMaxDepth());
151151
}
152-
return dataMap;
152+
return Optional.ofNullable(dataMap);
153153
}
154154

155155
@Override
156-
public List<Map<String, Object>> find(String modelName, Query query) {
156+
public List<Map<String, Object>> findAll(String modelName, Query query) {
157157
List<Map<String, Object>> mapList = queryAsMapList(modelName, query);
158158
if (query.hasExpand()) {
159159
nestedQuery(mapList, this::queryAsMapList, (ModelDefinition) sessionContext.getModelDefinition(modelName), query, sessionContext.getNestedQueryMaxDepth());
@@ -163,13 +163,13 @@ public List<Map<String, Object>> find(String modelName, Query query) {
163163

164164
@Override
165165
@SuppressWarnings("unchecked")
166-
public List<Map<String, Object>> findByNativeQuery(String modelName, Map<String, Object> params) {
166+
public List<Map<String, Object>> executeNativeQuery(String modelName, Map<String, Object> params) {
167167
NativeQueryDefinition model = (NativeQueryDefinition) sessionContext.getModelDefinition(modelName);
168-
return (List<Map<String, Object>>) executeNativeStatement(model.getStatement(), params);
168+
return (List<Map<String, Object>>) executeNative(model.getStatement(), params);
169169
}
170170

171171
@Override
172-
public Object executeNativeStatement(String statement, Map<String, Object> params) {
172+
public Object executeNative(String statement, Map<String, Object> params) {
173173
String json = StringHelper.simpleRenderTemplate(statement, params);
174174
Document command = Document.parse(json);
175175
Document result = mongoDatabase.runCommand(command);

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/query/DSLQueryBuilder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public DSLQueryBuilder forUpdate() {
226226
*/
227227
@SuppressWarnings("all")
228228
public List<Map<String, Object>> execute() {
229-
List list = session.data().find(modelName, query);
229+
List list = session.data().findAll(modelName, query);
230230
return list;
231231
}
232232

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/reflect/LazyLoadInterceptor.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,14 +140,14 @@ private RelationLoadResult loadRelationValue(RelationField relationField, Method
140140
if (relationField.isMultiple()) {
141141
Class<?> elementType = resolveCollectionElementType(method);
142142
List<Map<String, Object>> list = session.data()
143-
.find(relationField.getFrom(), Expressions.field(relationField.getForeignField()).eq(convertedIdentifier), null);
143+
.findAll(relationField.getFrom(), Expressions.field(relationField.getForeignField()).eq(convertedIdentifier), null);
144144
List<?> objects = JsonUtils.convertValueList(list, elementType);
145145
List<?> proxyList = LazyObjProxy.createProxyList(objects, relationField.getFrom(), session);
146146
return RelationLoadResult.loaded(proxyList);
147147
}
148148

149149
List<Map<String, Object>> result = session.data()
150-
.find(relationField.getFrom(), Expressions.field(relationField.getForeignField()).eq(convertedIdentifier), null);
150+
.findAll(relationField.getFrom(), Expressions.field(relationField.getForeignField()).eq(convertedIdentifier), null);
151151
if (result.isEmpty()) {
152152
return RelationLoadResult.notLoaded();
153153
}

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/service/DataService.java‎

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.util.List;
77
import java.util.Map;
8+
import java.util.Optional;
89
import java.util.function.UnaryOperator;
910

1011
/**
@@ -28,13 +29,13 @@ public interface DataService {
2829
*
2930
* @param modelName Model name
3031
* @param id ID
31-
* @return Record
32+
* @return Record, or empty if not found
3233
*/
33-
Map<String, Object> findById(String modelName, Object id, List<String> expand);
34+
Optional<Map<String, Object>> findById(String modelName, Object id, List<String> expand);
3435

35-
List<Map<String, Object>> find(String modelName, Query query);
36+
List<Map<String, Object>> findAll(String modelName, Query query);
3637

37-
List<Map<String, Object>> findByNativeQuery(String modelName, Map<String, Object> params);
38+
List<Map<String, Object>> executeNativeQuery(String modelName, Map<String, Object> params);
3839

3940
/**
4041
* 执行原生 SQL 语句(自动判断查询或更新操作)
@@ -43,7 +44,7 @@ public interface DataService {
4344
* @param params 参数对象
4445
* @return 查询操作返回 List<Map<String, Object>>,更新操作返回 Integer(影响行数)
4546
*/
46-
Object executeNativeStatement(String statement, Map<String, Object> params);
47+
Object executeNative(String statement, Map<String, Object> params);
4748

4849
/**
4950
* Count records based on conditions
@@ -116,21 +117,21 @@ default int insertAll(String modelName, List<Map<String, Object>> records) {
116117
return rows;
117118
}
118119

119-
default List<Map<String, Object>> find(String modelName, Predicate predicate, java.util.List<String> expand) {
120+
default List<Map<String, Object>> findAll(String modelName, Predicate predicate, java.util.List<String> expand) {
120121
Query query = new Query();
121122
query.setFilter(predicate.toJsonString());
122123
query.setExpand(expand);
123-
return find(modelName, query);
124+
return findAll(modelName, query);
124125
}
125126

126127
/**
127128
* Find a record by ID
128129
*
129130
* @param modelName Model name
130131
* @param id ID
131-
* @return Record
132+
* @return Record, or empty if not found
132133
*/
133-
default Map<String, Object> findById(String modelName, Object id) {
134+
default Optional<Map<String, Object>> findById(String modelName, Object id) {
134135
return findById(modelName, id, null);
135136
}
136137

@@ -142,15 +143,15 @@ default Map<String, Object> findById(String modelName, Object id) {
142143
* @return List of records
143144
*/
144145
@SuppressWarnings("all")
145-
default List<Map<String, Object>> find(String modelName, UnaryOperator<Query.Builder> queryUnaryOperator) {
146-
List list = find(modelName, queryUnaryOperator.apply(Query.Builder.create()).build());
146+
default List<Map<String, Object>> findAll(String modelName, UnaryOperator<Query.Builder> queryUnaryOperator) {
147+
List list = findAll(modelName, queryUnaryOperator.apply(Query.Builder.create()).build());
147148
return list;
148149
}
149150

150-
default List<Map<String, Object>> find(String modelName, Predicate predicate) {
151+
default List<Map<String, Object>> findAll(String modelName, Predicate predicate) {
151152
Query query = new Query();
152153
query.setFilter(predicate.toJsonString());
153-
return find(modelName, query);
154+
return findAll(modelName, query);
154155
}
155156

156157
default long count(String modelName, UnaryOperator<Query> queryUnaryOperator) {
@@ -173,7 +174,7 @@ default long count(String modelName, Predicate predicate) {
173174
* @return True if exists, false otherwise
174175
*/
175176
default boolean existsById(String modelName, Object id) {
176-
return findById(modelName, id) != null;
177+
return findById(modelName, id).isPresent();
177178
}
178179

179180
/**

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/service/EventAwareDataService.java‎

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import java.util.List;
1414
import java.util.Map;
15+
import java.util.Optional;
1516

1617
/**
1718
* 事件感知的数据服务包装器
@@ -76,7 +77,7 @@ public int updateById(String modelName, Map<String, Object> record, Object id) {
7677
log.debug("Starting update operation for model: {}, id: {}", modelName, id);
7778

7879
// 获取更新前的数据(仅在有监听器时才获取)
79-
Map<String, Object> oldData = eventPublisher.hasListeners() ? delegate.findById(modelName, id) : null;
80+
Map<String, Object> oldData = eventPublisher.hasListeners() ? delegate.findById(modelName, id).orElse(null) : null;
8081

8182
// 发布前置事件
8283
PreUpdateEvent preEvent = new PreUpdateEvent(modelName, schemaName, oldData, record, id, null, sessionId, source);
@@ -114,7 +115,7 @@ public int deleteById(String modelName, Object id) {
114115
log.debug("Starting delete operation for model: {}, id: {}", modelName, id);
115116

116117
// 获取删除前的数据(仅在有监听器时才获取)
117-
Map<String, Object> oldData = eventPublisher.hasListeners() ? delegate.findById(modelName, id) : null;
118+
Map<String, Object> oldData = eventPublisher.hasListeners() ? delegate.findById(modelName, id).orElse(null) : null;
118119

119120
// 发布前置事件
120121
PreDeleteEvent preEvent = new PreDeleteEvent(modelName, schemaName, oldData, id, null, sessionId, source);
@@ -272,20 +273,20 @@ private Object extractId(String modelName, Map<String, Object> data) {
272273

273274
// 委托其他方法给原始DataService
274275
@Override
275-
public Map<String, Object> findById(String modelName, Object id, List<String> expand) {
276+
public Optional<Map<String, Object>> findById(String modelName, Object id, List<String> expand) {
276277
log.debug("Starting findById operation for model: {}, id: {}", modelName, id);
277278

278279
// 发布前置查询事件
279280
PreQueryEvent preEvent = new PreQueryEvent(modelName, schemaName, null, sessionId, source);
280281
eventPublisher.publishPreChangeEvent(preEvent);
281282

282-
Map<String, Object> result = delegate.findById(modelName, id, expand);
283+
Optional<Map<String, Object>> result = delegate.findById(modelName, id, expand);
283284
log.debug("FindById operation completed for model: {}, id: {}", modelName, id);
284285
return result;
285286
}
286287

287288
@Override
288-
public List<Map<String, Object>> find(String modelName, Query query) {
289+
public List<Map<String, Object>> findAll(String modelName, Query query) {
289290
log.debug("Starting find operation for model: {}", modelName);
290291

291292
// 发布前置查询事件
@@ -295,19 +296,19 @@ public List<Map<String, Object>> find(String modelName, Query query) {
295296
// 使用事件中可能被修改的查询
296297
Query finalQuery = preEvent.getQuery() != null ? preEvent.getQuery() : query;
297298

298-
List<Map<String, Object>> result = delegate.find(modelName, finalQuery);
299+
List<Map<String, Object>> result = delegate.findAll(modelName, finalQuery);
299300
log.debug("Find operation completed for model: {}, result count: {}", modelName, result.size());
300301
return result;
301302
}
302303

303304
@Override
304-
public List<Map<String, Object>> findByNativeQuery(String modelName, Map<String, Object> params) {
305-
return delegate.findByNativeQuery(modelName, params);
305+
public List<Map<String, Object>> executeNativeQuery(String modelName, Map<String, Object> params) {
306+
return delegate.executeNativeQuery(modelName, params);
306307
}
307308

308309
@Override
309-
public Object executeNativeStatement(String statement, Map<String, Object> params) {
310-
return delegate.executeNativeStatement(statement, params);
310+
public Object executeNative(String statement, Map<String, Object> params) {
311+
return delegate.executeNative(statement, params);
311312
}
312313

313314
@Override

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/session/SessionFactory.java‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@
2323

2424
import dev.flexmodel.service.DataService;
2525
import dev.flexmodel.service.EventAwareDataService;
26-
import dev.flexmodel.ModelImportBundle;
2726

2827
import java.io.IOException;
2928
import java.io.InputStream;
3029
import java.sql.Connection;
3130
import java.util.*;
32-
import java.util.stream.Collectors;
3331

3432
/**
3533
* @author cjbi

‎flexmodel-engine/flexmodel-core/src/main/java/dev/flexmodel/sql/SqlDataService.java‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import dev.flexmodel.sql.type.UnknownSqlTypeHandler;
1919

2020
import java.util.*;
21+
import java.util.Optional;
2122
import java.util.stream.Collectors;
2223

2324
/**
@@ -289,7 +290,7 @@ public int update(String modelName, Map<String, Object> record, String filter) {
289290
}
290291

291292
@Override
292-
public Map<String, Object> findById(String modelName, Object id, List<String> expand) {
293+
public Optional<Map<String, Object>> findById(String modelName, Object id, List<String> expand) {
293294
log.debug("Starting SQL findById for model: {}, id: {}, expand: {}", modelName, id, expand);
294295
long startTime = System.currentTimeMillis();
295296

@@ -313,7 +314,7 @@ public Map<String, Object> findById(String modelName, Object id, List<String> ex
313314

314315
if (dataMap == null) {
315316
log.debug("No record found for model: {}, id: {}", modelName, id);
316-
return null;
317+
return Optional.empty();
317318
}
318319

319320
if (expand != null && !expand.isEmpty()) {
@@ -323,12 +324,12 @@ public Map<String, Object> findById(String modelName, Object id, List<String> ex
323324
}
324325
long duration = System.currentTimeMillis() - startTime;
325326
log.debug("SQL findById completed for model: {} in {}ms", modelName, duration);
326-
return dataMap;
327+
return Optional.of(dataMap);
327328
}
328329

329330
@Override
330331
@SuppressWarnings("all")
331-
public List<Map<String, Object>> find(String modelName, Query query) {
332+
public List<Map<String, Object>> findAll(String modelName, Query query) {
332333
log.debug("Starting SQL find for model: {}", modelName);
333334
long startTime = System.currentTimeMillis();
334335

@@ -347,19 +348,19 @@ public List<Map<String, Object>> find(String modelName, Query query) {
347348

348349
@Override
349350
@SuppressWarnings("unchecked")
350-
public List<Map<String, Object>> findByNativeQuery(String modelName, Map<String, Object> params) {
351+
public List<Map<String, Object>> executeNativeQuery(String modelName, Map<String, Object> params) {
351352
log.debug("Starting SQL native query model: {}", modelName);
352353
long startTime = System.currentTimeMillis();
353354
NativeQueryDefinition model = (NativeQueryDefinition) sessionContext.getModelDefinition(modelName);
354355
String statement = model.getStatement();
355-
List<Map<String, Object>> list = (List<Map<String, Object>>) executeNativeStatement(statement, params);
356+
List<Map<String, Object>> list = (List<Map<String, Object>>) executeNative(statement, params);
356357
long duration = System.currentTimeMillis() - startTime;
357358
log.debug("SQL native query model completed for {} in {}ms, results: {}", modelName, duration, list.size());
358359
return list;
359360
}
360361

361362
@Override
362-
public Object executeNativeStatement(String statement, Map<String, Object> params) {
363+
public Object executeNative(String statement, Map<String, Object> params) {
363364
log.debug("Starting SQL native execute: {}", statement);
364365
long startTime = System.currentTimeMillis();
365366

0 commit comments

Comments
 (0)