
# 一对多
#### 什么是一对多
一对多关系中，次要方可以不依赖于首要方，可以单独存在。删除一对多关系只代表两个对象之间的特定关系的结束，不会影响任何一个对象的生命周期。
图1一对多和聚合的差异   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000001930536056.png)
创建一对多关系后，首要方不会做任何的改动，次要方的字段中会自动增加首要方的id，即primaryId，通过这个primaryId去关联首要方的id，从而构建一个一对多的关系。
#### 关系属性设置
在业务设计页面，拖入两个BO业务对象（命名为Primary、Secondary），单击"relations"中的"一对多"，为对象建立一对多关系。选中已创建的关系，在右侧页面即可设置关系属性，如[图2]所示。
图2一对多关系   
![](https://support.huaweicloud.com/usermanual-astropro/zh-cn_image_0000002148177182.png)
- 关系名称：设置一对多关系的名称。
- 关系类型：根据创建的一对多关系自动生成。
- 关系首要方：根据创建的一对多关系自动生成。
- 关系次要方：根据创建的一对多关系自动生成。
- DTO暴露方式 - NESTED：是否设置DTO的NESTED（嵌套）能力。默认为不设置。
  - 不设置：不生成NESTED。
  
  - 只生成DTO：只生成NESTED对象的类。
  
  - 生成DTO读API：只会生成一个get接口。
  
  - 生成DTO读写API：除了生成一个get接口，还会生成一个插入接口。
   
- DTO暴露方式 - CARTESIAN：设置DTO的CARTESIAN（笛卡尔积）能力。
  - 不设置：不生成CARTESIAN。
  
  - 只生成DTO：只生成CARTESIAN对象的类。
  
  - 生成DTO读API：只会生成一个get接口。
   
- 每个*Primary* 关联最大*Secondary*数：一个首要方和次要方建立关联的数量上限。
- 每个*Secondary* 最大关联*Primary*数：一个次要方和首要方建立关联的数量上限。
- 每个*Primary* 关联最大*Secondary*维度上限预警值：首要方一条数据最多关联次要方多少条数据报出告警。
 
