hibernate关联关系

双向关联

         Inverse是双向关联的基本概念。对于多数是实体,一般不用双向关联,而是采用一对多的关联,many-to-one不存在inverse属性。其他默认值inverse=”false”

多方配置

 

一方配置

<set>元素包括以下属性。

name:设定待映射的持久化类的属性名,这里为 Team类的 monkeys属性。

cascade:当取值为“save-update”,表示级联保存和更新。

<set>元素还包含两个子元素:<key>和<one-to-many>。<one-to-many>元素设定所关联的持久化类,此处为 Monkey 类,<key>元素设定与所关联的持久化类对应的表的外键,此处为 MONKEYS表的 TEAM_ID字段。

Hibernate根据以上映射代码获得以下信息。

<set>元素表明 Team类的 monkeys属性为 java.uitl.Set集合类型。

<one-to-many>子元素表明 monkeys集合中存放的是一组 Monkey对象。

<key>子元素表明 MONKEYS表通过外键 TEAM_ID参照 TEAMS表。

cascade 属性取值为“save-update”,表明当保存或更新 Team 对象时,会级联保存或更新 monkeys集合中的所有 Monkey对象。

 

  1. 设置inverse=”true”表示Member不在作为主控方,就是说不再由Member来维持关联关系,
  2. 而有Order方来维持关联关系,这样Order在持久化的时候会主动去获取Member的主键值来作为自己
  3. 的外键值。在one-to-manay关联关系中,一般将manay端设置为主控方(inverse=”false”),
  4. 这样将有助于改善性能。默认情况下inverse=”false”

 

 

测试

 

posted @ 2017-12-28 17:14  ZzPink  阅读(95)  评论(0编辑  收藏  举报