迷失北京

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

          實體:

          package bi.one2many;
          
          import java.util.HashSet;
          import java.util.Set;
          
          public class Emperor {
          	private int id;
          	private String name;
          	private Set<Minister> ministers = new HashSet<Minister>();
          
          	public Emperor() {
          
          	}
          
          	public Emperor(int id, String name, Set<Minister> ministers) {
          		super();
          		this.id = id;
          		this.name = name;
          		this.ministers = ministers;
          	}
          
          	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 Set<Minister> getMinisters() {
          		return ministers;
          	}
          
          	public void setMinisters(Set<Minister> ministers) {
          		this.ministers = ministers;
          	}
          
          }
          
          package bi.one2many;
          
          public class Minister {
          	private int id;
          	private String name;
          	private Emperor emperor;
          
          	public Minister() {
          
          	}
          
          	public Minister(int id, String name, Emperor emperor) {
          		super();
          		this.id = id;
          		this.name = name;
          		this.emperor = emperor;
          	}
          
          	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 Emperor getEmperor() {
          		return emperor;
          	}
          
          	public void setEmperor(Emperor emperor) {
          		this.emperor = emperor;
          	}
          
          }
          

            

          hbm配置文件:

          <hibernate-mapping>
          	<class name="bi.one2many.Emperor">
          		<id name="id" column="did">
          			<generator class="native" />
          		</id>
          		<property name="name" type="string" column="name"></property>
          		
          		<!-- confirure the uniredirection association -->
          		<set name="ministers" inverse="true" cascade="all">
          			<key column="did" not-null="true"></key>
          			<one-to-many class="bi.one2many.Minister"/>
          		</set>
          	</class>
          
          </hibernate-mapping>
          <hibernate-mapping>
          	<class name="bi.one2many.Minister">
          		<id name="id" column="mid">
          			<generator class="native" />
          		</id>
          		<property name="name" type="string" column="name"></property>
          		<many-to-one name="emperor" column="did" cascade="all"></many-to-one>
          	</class>
          
          </hibernate-mapping>
          

            

          測試文件:

          public class Test {
          	
          	@org.junit.Test
          	public void testAdd() {
          		SessionFactory sf = HibernateUtil.getSessionFactory();
          		Session session = sf.getCurrentSession();
          		session.beginTransaction();
          		
          		Minister m1 = new Minister();
          		m1.setName("廉頗");
          		
          		Minister m2 = new Minister();
          		m2.setName("藺相如");
          		
          		Emperor emperor = new Emperor();
          		emperor.setName("齊威王");
          		//emperor.getMinisters().add(m1);
          		//session.save(emperor);
          		
          		m1.setEmperor(emperor);
          		m2.setEmperor(emperor);
          		
          		session.save(m1);
          		session.save(m2);
          		session.beginTransaction().commit();
          	}
          }
          

            

          測試結果:

          Hibernate: insert into Emperor (name) values (?)
          Hibernate: insert into Minister (name, did) values (?, ?)
          Hibernate: insert into Minister (name, did) values (?, ?)
          

            

          在雙向關聯關系配置中有inverse屬性和cascade屬性比較讓人迷糊,不過參看一下這個文章寫得蠻清楚的: 

          Hibernate中的Inverse和cascade屬性配置

          http://www.cnblogs.com/focusj/archive/2011/03/23/2057603.html

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

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


          網站導航:
           
          主站蜘蛛池模板: 洪湖市| 广平县| 花莲县| 濮阳市| 陆川县| 正镶白旗| 麦盖提县| 祁东县| 怀安县| 罗源县| 昌都县| 香河县| 海林市| 昂仁县| 清河县| 高阳县| 南康市| 商丘市| 禄丰县| 聂荣县| 肃南| 西宁市| 拉孜县| 曲麻莱县| 息烽县| 西华县| 忻州市| 贺州市| 武陟县| 油尖旺区| 大足县| 靖江市| 忻州市| 邵阳县| 麻江县| 垣曲县| 新巴尔虎左旗| 大港区| 安仁县| 曲松县| 柳林县|