日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hibernate映射-单向n-n关联关系

發布時間:2024/7/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate映射-单向n-n关联关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(學習記錄,錯誤不足之處,請您耐心指正^_^)

hibernate映射-多對多關聯關系

? ?n-n關聯必須使用連接表才能完成,

一、代碼示例:

{類文件↓}

Category.class

1 package com.zit.hibernate.n2n; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 public class Category { 7 8 private Integer id; 9 private String name; 10 11 private Set<Item> items = new HashSet<>(); 12 13 public Integer getId() { 14 return id; 15 } 16 public void setId(Integer id) { 17 this.id = id; 18 } 19 public String getName() { 20 return name; 21 } 22 public void setName(String name) { 23 this.name = name; 24 } 25 public Set<Item> getItems() { 26 return items; 27 } 28 public void setItems(Set<Item> items) { 29 this.items = items; 30 } 31 32 } Category.class

Item.class

?

1 package com.zit.hibernate.n2n; 2 3 public class Item { 4 5 private Integer id; 6 private String name; 7 8 public Integer getId() { 9 return id; 10 } 11 public void setId(Integer id) { 12 this.id = id; 13 } 14 public String getName() { 15 return name; 16 } 17 public void setName(String name) { 18 this.name = name; 19 } 20 21 } Item.class

?

(單向n-n)

{映射文件↓}

Item.hbm.xml

1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2015-12-25 13:55:35 by Hibernate Tools 3.4.0.CR1 --> 5 <hibernate-mapping package="com.zit.hibernate.n2n"> 6 <class name="Item" table="ITEMS"> 7 <id name="id" type="java.lang.Integer"> 8 <column name="ID" /> 9 <generator class="native" /> 10 </id> 11 <property name="name" type="java.lang.String"> 12 <column name="NAME" /> 13 </property> 14 </class> 15 </hibernate-mapping> Item.hbm.xml

Category.hbm.xml

1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2015-12-25 13:55:35 by Hibernate Tools 3.4.0.CR1 --> 5 <hibernate-mapping package="com.zit.hibernate.n2n"> 6 <class name="Category" table="CATEGORIES"> 7 <id name="id" type="java.lang.Integer"> 8 <column name="ID" /> 9 <generator class="native" /> 10 </id> 11 <property name="name" type="java.lang.String"> 12 <column name="NAME" /> 13 </property> 14 <set name="items" table="CATEGORIES_ITEMS"> 15 <key> 16 <column name="C_ID" /> 17 </key> 18 <many-to-many class="Item" column="I_ID"></many-to-many> 19 </set> 20 </class> 21 </hibernate-mapping> Category.hbm.xml

在Category.hbm.xml中,

1 <set name="items" table="CATEGORIES_ITEMS"> 2 <key> 3 <column name="C_ID" /> 4 </key> 5 <many-to-many class="Item" column="I_ID"></many-to-many> 6 </set>

這里的table指定中間表的名字,key 子元素,指定該中間表中參照CATEGORIES表的外鍵為C_ID.

使用many-to-many時,class屬性指定items集合中存放的是Item對象,column指定中間表中參照ITEMS表的外鍵

? ?名為 ?I_ID。

(中間表未指定主鍵,那么兩個屬性聯合起來作為主鍵。)

?

二、使用注意:

1.保存記錄時,由于兩個表并沒有直接的聯系,所以,先后保存哪一個數據,并沒有直接的影響。但save記錄時,需要同時操作中間表,所以,會相應的多出insert語句。

2.查詢時,有懶加載,在查詢set<Item>的size時,會將 中間表與ITEMS表進行內連接查詢。

(學習記錄,錯誤不足之處,請您耐心指正^_^)

轉載于:https://www.cnblogs.com/zitt/p/5075710.html

總結

以上是生活随笔為你收集整理的hibernate映射-单向n-n关联关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。