inverse,cascade,lazy,unsaved-value

來源:互聯網
上載者:User

 

構造這樣一個例子,在測試過程中來說明一些Hibernate的進階配置及其相關機制:
有三個類:Category.java,Prodcuct.java,ConfigurationTest.java,其中第三個類是用來測試的。
Category.java代碼:        
  1.  package unsaved_value;    
  2.  import ......    
  3.  public class Category {    
  4.     private Integer id;    
  5.     private String name;    
  6.     private String description;    
  7.     private Set products;    
  8.     public Category(){    
  9.          id=null;    
  10.          name=null;    
  11.         description=null;    
  12.         products=new HashSet();    
  13.      }    
  14.      public void addProduct(Product p){    
  15.          products.add(p);    
  16.     }    
  17.      //**********setter and getter    
  18.     ........    
  19.  }   
 
Product.java代碼:
 
  1. package unsaved_value;      
  2. public class Product {      
  3.     private Integer id;      
  4.     private String name;      
  5.     private Category category;      
  6.     private String description;      
  7.     public Product(){     
  8.          
  9.     }      
  10.      //*******getter and setter      
  11.      .........      
  12.  }      
  ConfigurationTest.java 
  1. public void testSave()throws Exception{    
  2.         Category category=new Category();    
  3.         category.setName("java編程書籍2");    
  4.         category.setDescription("編程經典書籍2");    
  5.         Product pro=new Product();    
  6.         pro.setName("java編程思想2");    
  7.         pro.setDescription("第四版中文版2");     
  8.         pro.setCategory(category);    
  9.         category.addProduct(pro);    
  10.         Transaction tx=session.beginTransaction();    
  11.         assert (session!=null):("session is null");    
  12.         session.save(category);    
  13.         tx.commit();    
  14.     }    
     
  Category代表產品目錄,而Product代表產品,顯然Category與Product是一對多的關係。Hibernate在映射一對多關聯性時,有兩種方式,一種是單向一對多,一種是雙向關係。兩者相比,雙向一對多的好處體現在兩方面:    首先,也是很明顯的一點,由於是雙向關聯,我們在實際商務邏輯時將更方便,例如我們可以檢索一個Category下的所有Product,同時還可以檢索出Product屬於哪個。    其次,雙向關係相對單向關係而言,在資料庫的訪問方面更有優勢。這一點留在後面講inverse時講
。雙向關聯比單向關聯唯一的”劣勢“,就在於雙向關聯需要比單向關聯多寫一個對應檔,這不問題。使用雙向關聯實現這兩個類同資料庫的映射:  
  1. Category.hbm.xml:  
  2.  version="1.0" encoding="UTF-8"?>  
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >  
  4. <hibernate-mapping package="unsaved_value">  
  5.    <class name="Category" table="category">  
  6.      <id name="id" column="id">  
  7.        <generator class="native">

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.