欢迎来到天天文库
浏览记录
ID:37540788
大小:366.77 KB
页数:19页
时间:2019-05-25
《Hibernate对象关系映射总结ˇ》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一对一双向关联(外键关联)人:身份证每个人知道自己的身份证每张身份证对应着一个人publicclassPerson{publicclassIdCard{privateintid;privateintid;privateStringname;privateDateusefulLife;privateIdCardidCard;privatePersonperson;。。。。。。。。。。。}}@Entity@Table(name="t_jpa_Person")publicclassPerson{@Id@GeneratedValueprivateintid;privateStringname;@
2、OneToOne(optional=true,cascade=CascadeType.ALL)@JoinColumn(name="idcard_id",unique=true)privateIdCardidCard;}@Entity@Table(name="t_jpa_IdCard")告诉hibernate:关系在对方设置:关系映射在我关联的类publicclassIdCard{Husband的wife属性上已经作了:这里不再映射了。@Id因为:对象关系只需要在一方设置就可以了(对应数据库就是@GeneratedValue主外键关系,否则主从表都有对方的主键作外键)privateinti
3、d;privateDateusefulLife;@OneToOne(optional=false,cascade=CascadeType.REFRESH,mappedBy="idCard")privatePersonperson;}一对多双向关联双向一对多或多对一:不需要多一张表,只是使用mappedBy:使用在One一方。表示对方是主导,关系在对方设置部门人员部门通过员工表的外键depart_id能够找到自己的所有的员工员工通过外键:depart_id能够找到自己所属的部门publicclassDepartment{publicclassEmployee{privateintid;pr
4、ivateintid;privateStringname;privateStringname;privateSetemps;privateDepartmentdepart;/*对象导航*/…………………………………..………………………………….}}@Entity@Entity@Table(name="t_jpa_group3")@Table(name="t_jpa_user3")publicclassGroup3{publicclassUser3{privateintid;privateintid;privateStringname;privateStringnam
5、e;privateSetusers=newHashSet()privateGroup3group;@OneToMany(mappedBy="group")@ManyToOnepublicSetgetUsers(){publicGroup3getGroup(){returnusers;returngroup;}}………………………………….………………………………….}}mappedby说明对象关系在另一方设置:也就是在用户这一方设定:用户来维护对象的关系具体体现:用户组的主键在用户表中做外键。《==》(主表主键在从表中做外键)存用户的时候:外键就
6、是根据该对象的id来定的。默认的外键子段就是:group_id@Entity@Table(name="t_jpa_user3")publicclassUser3{privateintid;privateStringname;也可以更加明确的写出外privateGroup3group;键子段的名称:它所参照的主表列就是:Group3对@ManyToOne应表的主键字段@JoinColumn(name="group_id8888")publicGroup3getGroup(){returngroup;}publicvoidsetGroup(Group3group){this.group=gr
7、oup;}@Id@GeneratedValuepublicintgetId(){returnid;}这是用户表user3的结构多对多双向关联publicclassStudent{publicclassTeacher{privateintid;privateintid;privateStringname;privateStringname;privateSetteachers;privateSets
此文档下载收益归作者所有