diff --git a/docs/dev-guide/graphql/batch-loader.md b/docs/dev-guide/graphql/batch-loader.md new file mode 100644 index 000000000..f416284fc --- /dev/null +++ b/docs/dev-guide/graphql/batch-loader.md @@ -0,0 +1,16 @@ +# 批量加载 + +## 对调用结果执行GraphQL的Loader机制实现动态批量数据加载 + +```javascript + IEntityDao user = daoProvider.daoFor(NopAuthUser.class); + List list = user.findAll(); + IServiceContext svcCtx = null; // 在后端模板运行时上下文中一般存在svcCtx + CompletionStage future = graphQLEngine.fetchResult(list, + "NopAuthUser", "...F_defaults,status_label,relatedRoleList", svcCtx); + output("result.json5", FutureHelper.syncGet(future)); +``` + +IGraphQLEngine.fetchResult可以根据传入的对象和GraphQL类型,字段选择集动态创建GraphQLFieldSelection,然后执行GraphQL的DataLoader数据加载逻辑。 + +缺省情况下NopGraphQL访问实体数据时会自动实现批量加载逻辑,对应代码在OrmEntityRefFetcher和OrmEntitySetFetcher中,它们会自动处理ORM层面关联属性和关联集合 diff --git a/docs/dev-guide/model/excel-model.md b/docs/dev-guide/model/excel-model.md index 0127ed3f1..f87a8449c 100644 --- a/docs/dev-guide/model/excel-model.md +++ b/docs/dev-guide/model/excel-model.md @@ -192,3 +192,6 @@ Excel模型中如果定义了`所属模型`这个参数,则会在自动生成` ## 常见问题诊断 1. 在Excel模型中定义了关联属性,但是生成的`app.orm.xml`文件中却没有。 注意关联属性是在【关联列表】中定义,对于列表结构,每一个条目的第一列是序号列,其中必须设置为整数值。![](images/relation.png) + +2. 在Excel中定义了字典,但是没有生成dict.yaml文件 +注意字典的第一列必须是数字。解析列表结构的时候需要根据第一列确定到底哪些内容是列表的内容。第一列是序号列。