<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 每天更新的免费av片在线观看| 亚洲熟妇少妇任你躁在线观看无码| 成人毛片免费网站| 亚洲自偷自偷精品| 99精品视频免费观看| 久久精品亚洲一区二区| 另类免费视频一区二区在线观看| 在线看免费观看AV深夜影院| 亚洲国产成人久久一区久久| 特级一级毛片免费看| 99久久精品免费精品国产| 亚洲人成电影在在线观看网色| 国产AV无码专区亚洲AV蜜芽| 16女性下面扒开无遮挡免费| 久久综合亚洲色一区二区三区| 三年片在线观看免费观看大全中国| 精品女同一区二区三区免费站| 亚洲国产成人精品女人久久久 | 亚洲美女视频免费| 曰批全过程免费视频播放网站| 亚洲欧洲无码AV电影在线观看| 亚洲综合av一区二区三区 | 亚洲欧洲精品一区二区三区| 麻豆视频免费播放| 亚洲av无码有乱码在线观看| 亚洲精品国自产拍在线观看| 国偷自产一区二区免费视频| 亚洲精品国产高清嫩草影院| 精品一卡2卡三卡4卡免费视频| 亚洲国产成人精品女人久久久 | 欧美a级在线现免费观看| 国产精品亚洲专区无码唯爱网| 99无码人妻一区二区三区免费| 人人狠狠综合久久亚洲婷婷| 亚洲黄色免费观看| 色九月亚洲综合网| 亚洲一级二级三级不卡| 久久久久久免费一区二区三区| 久久精品夜色噜噜亚洲A∨| 国产免费黄色无码视频| 亚洲福利视频导航|