/*
* 三种配置方式:
* 1. @OneToMany(cascade= {CascadeType.ALL},fetch=FetchType.LAZY ,mappedBy="customId")
* mappedBy属性用于双向关联实体时使用,
* mappedBy属性:用在双向关联中,把关系的维护权反转 ; 跟hibernate XML映射中的property-ref一样。
*
* JPA执行步骤:一、插入数据到CUSTOM表,
* 二、执行getAddresses()获取需要持久化的ADDRESS(ADDRESS必须代码设置外键CUSTID),
* 三、插入数据到ADDRESS表
*
* 2.@OneToMany(cascade= {CascadeType.ALL},fetch=FetchType.LAZY )
* JPA执行步骤: 一、插入数据到CUSTOM表,
* 二、执行getAddresses()获取需要持久化的ADDRESS(ADDRESS代码不需要设置外键CUSTID),ADDRESS和CUSTOM关系保存在关联表中;
* 三、插入数据到ADDRESS表
* 四、插入关联信息到CUSTOM_ADDRESS 表中
* 另外关联表的字段对应关系也可以手工设置,
* @JoinTable(name="ref_customer_address",
* joinColumns={@JoinColumn(name="customer_id",referencedColumnName="custId")},
* inverseJoinColumns={@JoinColumn(name="address_id",referencedColumnName="addrId")}
*
* 3.@OneToMany(cascade= {CascadeType.ALL},fetch=FetchType.LAZY )
* @JoinColumn(name="customer_id") 对应的是表中的字段,会在最后一步进行该字段的更新
* 该设置属于单向关联, 该设置需要执行三条SQL操作,不推荐;JPA推荐第一种和第二种做法;
* JPA执行步骤如下:一、插入数据到CUSTOM表,
* 二、执行getAddresses()获取需要持久化的ADDRESS(ADDRESS必须代码设置外键CUSTID或者将外键属性设置为可以为空),
* 三、插入数据到ADDRESS表
* 四、 然后再UPDATE ADDRESS 设置外键关系customer_id
*
* 4.另外多端需要初始化一个空数组
* private Collection<Address> addresses = new ArrayList<Address>();
*
* */