posts - 8,  comments - 4,  trackbacks - 0
          在實際開發中,多對多雙向表會盡量避免而無法完全避免,一旦遇到這個情況時hibernate的映射方法如下

          舉個例子:
          多對多雙向關聯
          關系舉例:老師<-->學生,老師需要知道自己教了哪些學生,學生也知道自己有哪些老師.
          數據庫:中間表
          Annotation:@ManyToMany
          XML:<many-to-many>
          多對多單向配置只需要在一端進行配置就可以了,雙向需要配置兩端.
          關系模型(Teache多對多Student)
          Teacher(id,name,students)多
          Set<Student> students=new HashSet<Student>()
          Student(id,name,teachers)多
          Set<Teacher> teachers = new HashSet<Teacher>();
          Annotation配置
          在Teacher這一端的students上配置
          //如果手動指定生成的中間表的表名和字段名
          @ManyToMany
          @JoinTable(name="t_s",
          joinColumns={@JoinColumn(name="teacher_id")},
          inverseJoinColumns={@JoinColumn(name="student_id")}
          )
          在Student一端的teachers只需要配置
          @ManyToMany(mappedBy="students")
          XML配置方式:兩端配置一樣,注意表名和生成的中間表的字段屬性名要一致
          Teacher那一端配置
          <set name="students" table="t_s">
          <key column="teacher_id"/>
          <many-to-many class="com.xxx.Student" column="student_id"/>
          </set>
          在Student那一端配置
          <set name="teachers" table="t_s">
          <key column="student_id"></key>
          <many-to-many class="com.xxx.Teacher" column="teacher_id"/>
          </set>
          生成的表為
          create table Student (
          id integer not null auto_increment,
          name varchar(255),
          primary key (id)
          )
          create table Teacher (
          id integer not null auto_increment,
          name varchar(255),
          primary key (id)
          )
          create table t_s (//生成的中間表
          teacher_id integer not null,
          student_id integer not null,
          primary key (teacher_id, student_id)
          )
          t_s表的兩個屬性分別references其它表的主鍵.
          t_s(teacher_id, student_id)為中間表,ID策略為聯合主鍵

          @orderby(value="id")
          posted on 2011-04-19 19:52 林齊磊花 閱讀(1369) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年4月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 重庆市| 历史| 潞西市| 仁化县| 江西省| 张家川| 大田县| 苍梧县| 梁山县| 济南市| 秦皇岛市| 丰镇市| 哈密市| 五华县| 浦东新区| 太保市| 全椒县| 南投县| 东兰县| 新乐市| 双峰县| 河北省| 博兴县| 六枝特区| 辽中县| 华安县| 清新县| 榕江县| 绥阳县| 松江区| 黎川县| 沾益县| 巫山县| 浦北县| 天门市| 兰考县| 文安县| 布尔津县| 布拖县| 安乡县| 鲁山县|