菜鳥學習Hibernate——一對多關聯性映射

來源:互聯網
上載者:User

標籤:style   class   blog   c   code   java   

     Hibernate中的關係映射,最常見的關係映射之一就是一對多關聯性映射例如學生與班級的關係,一個班級對應多個學生。

      Hibernate中如何來映射這兩個的關係呢?

      下面就為大家講解一下:

1、建立實體類Classes和實體類Student

Classes.java

package com.bjpowernode.hibernate;import java.util.Set;public class Classes {private int id;private String name;private Set students;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 getStudents() {return students;}public void setStudents(Set students) {this.students = students;}}


Student.java

package com.bjpowernode.hibernate;public class Student {private int id;private String name;private Classes classes;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 Classes getClasses() {return classes;}public void setClasses(Classes classes) {this.classes = classes;}}


2、建立對應檔Classes.hbm.xml和Student.hbm.xml

Classes.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.bjpowernode.hibernate.Classes" table="t_classes"><id name="id"><generator class="native"/></id><property name="name"/><set name="students" inverse="true"><!-- <key column="classesid" not-null="true"/> --> <key column="classesid"/><one-to-many class="com.bjpowernode.hibernate.Student"/></set></class></hibernate-mapping>


Student.hbm.xml

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="com.bjpowernode.hibernate.Student" table="t_student"><id name="id"><generator class="native"/></id><property name="name"/><many-to-one name="classes" column="classesid"/></class></hibernate-mapping>


3、


PS:我上面舉例的是一對多雙向關聯的例子。有雙向關聯當然就有單向關聯。下面舉個例子來說明他們的區別

如果Student添加了一條記錄當中的classesid在Classes中沒有這個id,雙向關聯的話則先新增學生這條記錄然後再班級那裡添加這個班級,然後再更新學生的classesid。單向關聯的話先添加班級,然後再新增學生。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.