# 业务数据服务帮助类

`kd.bos.servicehelper.BusinessDataServiceHelper`业务数据服务帮助类提供查询、缓存查询等功能。

举例，生成实体主键：

```java
DynamicObject obj = BusinessDataServiceHelper.loadSingleFromCache(pkId, mainEntityType);
```



## API 概览 

| 方法                                                         | 说明                                    |
| ------------------------------------------------------------ | --------------------------------------- |
| static DynamicObject[] load(Object[] pkArray, DynamicObjectType type)<br/>static Object[] load(Object[] pkArray, IDataEntityType type)<br/>static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters)<br/>static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy)<br/>static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int top)<br/>static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int pageIndex, int pagesize) | 加载数据                                |
| static Map<Object, DynamicObject> loadFromCache(DynamicObjectType type, QFilter[] filters)<br/>static Map<Object, DynamicObject> loadFromCache(Object[] pkArray, DynamicObjectType type)<br/>static Map<Object, DynamicObject> loadFromCache(Object[] pkArray, String entityName)<br/>static Map<Object, DynamicObject> loadFromCache(String entityName, QFilter[] filters)<br/>static Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters)<br/>static Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters, String orderBy) | 从缓存加载数据                          |
| static DynamicObject loadHead(Object pk, DynamicObjectType type) | 读取实体,仅包含根实体数据，不含分录数据 |
| static void loadRefence(Object[] dataEntitys, IDataEntityType type) | 加载实体引用数据                        |
| static DynamicObject loadSingle(Object pk, DynamicObjectType type) <br/>static DynamicObject loadSingle(Object pk, DynamicObjectType type, int start, int limit)<br/>static DynamicObject loadSingle(Object pk, String entityName)<br/>static DynamicObject loadSingle(Object pk, String entityName, String selectProperties)<br/>static DynamicObject loadSingle(String entityName, String selectProperties, QFilter[] filters) | 加载动态实体                            |
| static DynamicObject loadSingleFromCache(Object pk, DynamicObjectType type)<br/>static DynamicObject loadSingleFromCache(Object pk, String entityName)<br/>static DynamicObject loadSingleFromCache(Object pk, String entityName, String selectProperties)<br/>static DynamicObject loadSingleFromCache(String entityName, QFilter[] filters)<br/>static DynamicObject loadSingleFromCache(String entityName, String selectProperties, QFilter[] filters) | 从缓存加载实体                          |
| static DynamicObject newDynamicObject(String entityName)     | 通过实体名称创建一个动态实体类型        |
| static void removeCache(DynamicObjectType type)              | 移除缓存                                |



## API 详情

### 1、加载数据

```java
static DynamicObject[] load(Object[] pkArray, DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数    | 参数类型          | 是否必传 |
| -------- | ------- | ----------------- | -------- |
| 主键Ids  | pkArray | Object[]          | 是       |
| 实体类型 | type    | DynamicObjectType | 是       |

返回数据：

**数据列表**，DynamicObject[]



### 2、加载数据

```java
static Object[] load(Object[] pkArray, IDataEntityType type)
```

传入参数：

| 参数名称 | 参数    | 参数类型        | 是否必传 |
| -------- | ------- | --------------- | -------- |
| 主键Ids  | pkArray | Object[]        | 是       |
| 实体类型 | type    | IDataEntityType | 是       |

返回数据：

**数据列表**，Object[]



### 3、加载数据

```java
static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |

返回数据：

**数据列表**，DynamicObject[]



### 4、加载数据

```java
static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |
| 排序条件             | orderBy          | String    | 是       |

返回数据：

**数据列表**，DynamicObject[]



### 5、加载数据

```java
static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int top) 
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |
| 排序条件             | orderBy          | String    | 是       |
| 前top条              | top              | int       | 是       |

返回数据：

**数据列表**，DynamicObject[]



### 6、加载数据（分页）

```java
static DynamicObject[] load(String entityName, String selectProperties, QFilter[] filters, String orderBy, int pageIndex, int pagesize)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |
| 排序条件             | orderBy          | String    | 是       |
| 页码                 | pageIndex        | int       | 是       |
| 分页大小             | pageSize         | int       | 是       |

返回数据：

**数据列表**，DynamicObject[]



### 7、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(DynamicObjectType type, QFilter[] filters) 
```

传入参数：

| 参数名称 | 参数    | 参数类型          | 是否必传 |
| -------- | ------- | ----------------- | -------- |
| 实体类型 | type    | DynamicObjectType | 是       |
| 过滤条件 | filters | QFilter[]         | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 8、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(Object[] pkArray, DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数    | 参数类型          | 是否必传 |
| -------- | ------- | ----------------- | -------- |
| 主键Ids  | pkArray | Object[]          | 是       |
| 实体类型 | type    | DynamicObjectType | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 9、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(Object[] pkArray, String entityName)
```

传入参数：

| 参数名称             | 参数       | 参数类型 | 是否必传 |
| -------------------- | ---------- | -------- | -------- |
| 主键Ids              | pkArray    | Object[] | 是       |
| 实体名称(即表单编码) | entityName | String   | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 10、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(String entityName, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数       | 参数类型  | 是否必传 |
| -------------------- | ---------- | --------- | -------- |
| 实体名称(即表单编码) | entityName | String    | 是       |
| 过滤条件             | filters    | QFilter[] | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 11、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 12、从缓存加载数据

```java
static Map<Object, DynamicObject> loadFromCache(String entityName, String selectProperties, QFilter[] filters, String orderBy)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |
| 排序条件             | orderBy          | String    | 是       |

返回数据：

**缓存数据**，Map<Object, DynamicObject>



### 13、读取实体(仅包含根实体数据不含分录数据)

```java
static DynamicObject loadHead(Object pk, DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数 | 参数类型          | 是否必传 |
| -------- | ---- | ----------------- | -------- |
| 主键id   | pk   | Object            | 是       |
| 实体类型 | type | DynamicObjectType | 是       |

返回数据：

**实体数据**，DynamicObject



### 14、加载引用数据

```java
static void loadRefence(Object[] dataEntitys, IDataEntityType type)
```

传入参数：

| 参数名称 | 参数        | 参数类型          | 是否必传 |
| -------- | ----------- | ----------------- | -------- |
| 实体数据 | dataEntitys | Object[]          | 是       |
| 实体类型 | type        | DynamicObjectType | 是       |

返回数据：无



### 15、加载单个实体

```java
static DynamicObject loadSingle(Object pk, DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数 | 参数类型          | 是否必传 |
| -------- | ---- | ----------------- | -------- |
| 主键id   | pk   | Object            | 是       |
| 实体类型 | type | DynamicObjectType | 是       |

返回数据：

**实体数据**，DynamicObject



### 16、加载单个实体

```java
static DynamicObject loadSingle(Object pk, DynamicObjectType type, int start, int limit)
```

传入参数：

| 参数名称   | 参数  | 参数类型          | 是否必传 |
| ---------- | ----- | ----------------- | -------- |
| 主键id     | pk    | Object            | 是       |
| 实体类型   | type  | DynamicObjectType | 是       |
| 分录起始行 | start | int               | 是       |
| 分录行数   | limit | int               | 是       |

返回数据：

**实体数据**，DynamicObject



### 17、加载单个实体

```java
static DynamicObject loadSingle(Object pk, String entityName)
```

传入参数：

| 参数名称             | 参数       | 参数类型 | 是否必传 |
| -------------------- | ---------- | -------- | -------- |
| 主键id               | pk         | Object   | 是       |
| 实体名称(即表单编码) | entityName | String   | 是       |

返回数据：

**实体数据**，DynamicObject



### 18、加载单个实体

```java
static DynamicObject loadSingle(Object pk, String entityName, String selectProperties)
```

传入参数：

| 参数名称             | 参数             | 参数类型 | 是否必传 |
| -------------------- | ---------------- | -------- | -------- |
| 主键id               | pk               | Object   | 是       |
| 实体名称(即表单编码) | entityName       | String   | 是       |
| 查询字段             | selectProperties | String   | 是       |

返回数据：

**实体数据**，DynamicObject



### 18、加载单个实体

```java
static DynamicObject loadSingle(String entityName, String selectProperties, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | Qfilter[] | 是       |

返回数据：

**实体数据**，DynamicObject



### 19、从缓存加载单个实体

```java
static DynamicObject loadSingleFromCache(Object pk, DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数 | 参数类型          | 是否必传 |
| -------- | ---- | ----------------- | -------- |
| 主键id   | pk   | Object            | 是       |
| 实体类型 | type | DynamicObjectType | 是       |

返回数据：

**实体数据**，DynamicObject



### 20、从缓存加载单个实体

```java
static DynamicObject loadSingleFromCache(Object pk, String entityName)
```

传入参数：

| 参数名称             | 参数       | 参数类型 | 是否必传 |
| -------------------- | ---------- | -------- | -------- |
| 主键id               | pk         | Object   | 是       |
| 实体名称(即表单编码) | entityName | String   | 是       |

返回数据：

**实体数据**，DynamicObject



### 21、从缓存加载单个实体

```java
static DynamicObject loadSingleFromCache(Object pk, String entityName, String selectProperties)
```

传入参数：

| 参数名称             | 参数             | 参数类型 | 是否必传 |
| -------------------- | ---------------- | -------- | -------- |
| 主键id               | pk               | Object   | 是       |
| 实体名称(即表单编码) | entityName       | String   | 是       |
| 查询字段             | selectProperties | String   | 是       |

返回数据：

**实体数据**，DynamicObject



### 22、从缓存加载单个实体

```java
 static DynamicObject loadSingleFromCache(String entityName, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数       | 参数类型  | 是否必传 |
| -------------------- | ---------- | --------- | -------- |
| 实体名称(即表单编码) | entityName | String    | 是       |
| 过滤条件             | filters    | QFilter[] | 是       |

返回数据：

**实体数据**，DynamicObject



### 23、从缓存加载单个实体

```java
 static DynamicObject loadSingleFromCache(String entityName, String selectProperties, QFilter[] filters)
```

传入参数：

| 参数名称             | 参数             | 参数类型  | 是否必传 |
| -------------------- | ---------------- | --------- | -------- |
| 实体名称(即表单编码) | entityName       | String    | 是       |
| 查询字段             | selectProperties | String    | 是       |
| 过滤条件             | filters          | QFilter[] | 是       |

返回数据：

**实体数据**，DynamicObject



### 24、通过实体名称创建一个动态实体类型

```java
static DynamicObject newDynamicObject(String entityName)
```

传入参数：

| 参数名称             | 参数       | 参数类型 | 是否必传 |
| -------------------- | ---------- | -------- | -------- |
| 实体名称(即表单编码) | entityName | String   | 是       |

返回数据：

**实体数据**，DynamicObject



### 25、移除某一实体类型的缓存

```java
static void removeCache(DynamicObjectType type)
```

传入参数：

| 参数名称 | 参数 | 参数类型          | 是否必传 |
| -------- | ---- | ----------------- | -------- |
| 实体类型 | type | DynamicObjectType | 是       |

返回数据：无