天天看點

HHibernate一對多、多對多的關系配置

一對多關系配置

  1. 建立表
  2. 建立實體

    one類

public  class  One{
                private    String   teacher;  
                //放置多的一方類的集合
               private   set<Many>   many=new  Hashset<Many>();
            }
           

many類

public   class   Many{
private  String    student;
//放置一的一方類的對象
private  String   teacher;
}
           
  1. 建立映射配置

    one的映射

<set    name="  Many " >
 <key  colum ="  外鍵名稱 ">
 <one-to-many  class=“Many的全路徑”>
 </set>
           

many的映射

<many-to-one  name="One"  class="one的全路徑"  column=''外鍵名稱">
           

多對多關系配置

1.建立表格(三張表,兩個屬性表,一個中間表)

  1. 建立實體類

    many類

public  class  Many{
private   Long  many_id;
private   String many_name;

private  Set<Litter>  litter=new  HashSet<Litter>();

}
           

Litter類

public   class  Litter{
private   Long litter_id;
private   String litter_name;

private  Set<Many>  many= new HashSet<Many>();


}
           
  1. 配置映射檔案

    Many的映射

<set  name="litter"  table="中間表的名稱">
<key  column="Many對象對應中間表中外鍵的名稱">
<many-to-many class="Litter類的全路徑"  column="Litter在中間表中的外鍵名">
</set>
           

Litter的映射

<set  name="many"  table="中間表的名稱">
<key  column="Litter對象對應中間表中外鍵的名稱">
<many-to-many class="Many類的全路徑"  column="Many在中間表中的外鍵名">
</set>
           

級聯操作

操作一個對象的時候,是否會同時操作其關聯的對象

  • 一對多的級聯操作(儲存操作)

    使one的一方放棄外鍵維護權配置one.hbm.xml中配置cascade=“save-update” inverse=“true”

    many則配置cascade=“save-update”

繼續閱讀