<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷失北京

    BlogJava 聯系 聚合 管理
      60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

       在這里舉了一個不太恰當的例子:雙親和孩子。當然舉這個例子也有一定的道理,一個孩子至少有兩個parent,但是例子只是例子,重點不是例子而是配置方法。下面我們看一下配置的詳細步驟:

    實體:

    package uni.many2one;
    
    public class Child {
    	private int id;
    	private String name;
    
    	public Child(int id, String name) {
    		super();
    		this.id = id;
    		this.name = name;
    	}
    
    	public Child() {
    	}
    
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    }
    
    package uni.many2one;
    
    
    public class Parent {
    	private int id;
    	private String name;
    	private Child child;
    
    	public Parent() {
    	}
    
    	public Parent(int id, String name, Child child) {
    		super();
    		this.id = id;
    		this.name = name;
    		this.child = child;
    	}
    
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public Child getChild() {
    		return child;
    	}
    
    	public void setChild(Child child) {
    		this.child = child;
    	}
    
    }
    

      

    hbm配置文件:

    <hibernate-mapping>
    	<class name="uni.many2one.Child">
    		<id name="id" column="did">
    			<generator class="native" />
    		</id>
    		<property name="name" type="string" column="name"></property>
    	</class>
    
    </hibernate-mapping>
    <hibernate-mapping>
    	<!-- <class name="org.hibernate.wk.Student" dynamic-insert="true" dynamic-update="true"> -->
    	<class name="uni.many2one.Parent">
    		<id name="id" column="did">
    			<generator class="native" />
    		</id>
    		<property name="name" type="string" column="name"></property>
    		
    		<!-- configure the many to one association -->
    		<many-to-one name="child" column="child"></many-to-one>
    	</class>
    
    </hibernate-mapping>
    

      

    測試文件:

    public void testAdd() {
    		SessionFactory sf = HibernateUtil.getSessionFactory();
    		Session session = sf.getCurrentSession();
    		session.beginTransaction();
    		Child c1 = new Child();
    		c1.setName("child1");
    
    		Parent mother = new Parent();
    		mother.setName("Mother");
    		mother.setChild(c1);
    		
    		Parent father = new Parent();
    		father.setName("Daddy");
    		father.setChild(c1);
    		
    		session.save(c1);
    		session.save(mother);
    		session.save(father);
    		session.beginTransaction().commit();
    		
    	}
    

      

    測試結果:

    Hibernate: insert into Child (name) values (?)
    Hibernate: insert into Parent (name, child) values (?, ?)
    Hibernate: insert into Parent (name, child) values (?, ?)
    

      

    這里我沒有貼出來表的結構,因為表hibernate會自動生成的,多以就沒有浪費地方。

    hibernate關聯關系映射的配置中務必要搞清楚誰是主動配置方,誰是被配置的,如果搞不清楚很容易在實體操作的時候出現錯誤。尤其是在保存實體的時候,很容易出現引用為空的情況。

    posted on 2011-07-23 10:05 王康 閱讀(87) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 成人免费在线看片| 99在线视频免费| 亚洲国产精品成人一区| 国产亚洲精品美女| 青青青国产免费一夜七次郎| 亚洲一区二区观看播放| 性xxxx视频播放免费| 亚洲日韩AV一区二区三区四区| 久久久高清免费视频| 亚洲人成网亚洲欧洲无码| 国产成人高清精品免费鸭子| 美女被免费网站在线视频免费| 亚洲国产精品不卡毛片a在线| 国产精品一区二区三区免费| 亚洲日产韩国一二三四区| 国产亚洲免费的视频看| 91亚洲va在线天线va天堂va国产 | 日韩免费高清大片在线| 亚洲国产精品久久网午夜| 久久精品网站免费观看| 羞羞漫画小舞被黄漫免费| 国产自偷亚洲精品页65页| 91在线老王精品免费播放| 亚洲大尺度无码无码专线一区| MM131亚洲国产美女久久| 99re免费在线视频| 亚洲av无一区二区三区| 亚洲中文字幕无码久久2017| 8090在线观看免费观看| 亚洲精品久久无码| 久久亚洲国产中v天仙www| 免费精品国产自产拍在 | 亚洲成a人片在线不卡一二三区| 亚洲精品NV久久久久久久久久| 国产午夜无码精品免费看动漫| 亚洲特级aaaaaa毛片| 久久激情亚洲精品无码?V| 久久精品免费一区二区| 日韩一级片免费观看| 亚洲明星合成图综合区在线| 免费一级大黄特色大片|