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

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

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

    迷失北京

    BlogJava 聯(lián)系 聚合 管理
      60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

       在這里舉了一個不太恰當?shù)睦樱弘p親和孩子。當然舉這個例子也有一定的道理,一個孩子至少有兩個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();
    		
    	}
    

      

    測試結(jié)果:

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

      

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

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 四虎国产精品免费久久| 久久国产乱子精品免费女| 91成人免费观看网站| 亚洲国产精品久久66| 国产精品视频全国免费观看| 亚洲高清国产拍精品青青草原| 亚洲AV性色在线观看| 成人激情免费视频| 亚洲国产成人久久综合| 全免费a级毛片免费看无码| 精品亚洲456在线播放| 好大好硬好爽免费视频| 亚洲欧美自偷自拍另类视| 四虎成人精品一区二区免费网站| 亚洲人片在线观看天堂无码| 久久久久久久久免费看无码| 亚洲私人无码综合久久网| 拔擦拔擦8x华人免费久久| 美女被吸屁股免费网站| 久久久久亚洲精品无码网址 | 亚洲精品无码AV人在线播放| a级毛片在线免费观看| 亚洲日本精品一区二区| 免费观看无遮挡www的小视频| 色在线亚洲视频www| 久久国产精品免费看| 亚洲高清免费视频| 国产在线精品观看免费观看| 国产亚洲婷婷香蕉久久精品| 97青青草原国产免费观看| 亚洲一级毛片视频| 免费h成人黄漫画嘿咻破解版| yellow免费网站| 亚洲国产精品一区| 成人免费视频软件网站| 一边摸一边桶一边脱免费视频 | 成人性生交大片免费看中文| 亚洲香蕉免费有线视频| 国产美女做a免费视频软件| 成年免费a级毛片免费看无码| 亚洲激情视频网站|