读书人

JPA 单向一对多联系关系(@OneToMany)

发布时间: 2012-08-24 10:00:21 作者: rapoo

JPA 单向一对多关联(@OneToMany)
有了一对一@OneToOne映射的基础,学习一对多@OneToMany和多对一@ManyToOne就容易多了。一对多和多对一实际上是从不同的实体方向上区分的。例如实体A与实体B是一对多的关系,从实体B的角度,实体B与实体A是多对一的关系。
下面仍旧使用客户实体(CustomerEO)与地址实体(AddressEO)为例来说明如何映射一对多关系的映射。
一. 映射策略
对于一对多的实体关系,表结构有两种设计策略,分别是外键关联和表关联。
? 外键关联:两个表关系定义在其中的一个表中。
? 表关联:两个表的关系单独定义一个表中,通过一个中间表来关联。

    实体类 Address_m.javapackage com.demo.bean.onetomany1;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.JoinColumn;import javax.persistence.ManyToOne;import javax.persistence.Table;import javax.persistence.Version;import com.demo.bean.onetoone.Customer;/** * entity  * @author ALEX * */@Entity@Table(name="t_address_m")public class Address_m {@Versionprivate Long version;//version@Id@GeneratedValueprivate Long id;//idpublic String province;//省份public String city;//城市public String postcode;//邮编public String detail;//详细地址/** * 若为单向,many,则为: * @ManyToOne(cascade = {CascadeType.ALL} ) *  * 若用sql语句已创建外键关联,则为: * @ManyToOne */@ManyToOne(cascade={CascadeType.ALL})public Customer_m customer;//----------get,set可省------------}

测试类,则由读者自己去写. 1 楼 uuid198909 2011-07-27 楼主啊,你这个是双向关联的啊

读书人网 >软件架构设计

热点推荐