2012年6月27日
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="Card" table="tbl_card">
<id name="cardId" column="pk_card_id">
<generator class="native"/>
</id>
<property name="cardNo" column="card_no"/>
<!-- 需要維護關系的屬性,就不是普通屬性 -->
<!-- Person和Card溝通的橋梁是外鍵fk_card_id -->
<one-to-one name="person" property-ref="card"/>
<!-- property-ref="card":通過Person的外鍵pk_card_id,可以得到pk_person_id -->
</class>
</hibernate-mapping>
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="Person" table="tbl_person">
<id name="personId" column="pk_person_id">
<generator class="native"/>
</id>
<property name="personName" column="person_name"/>
<!-- 唯一外鍵約束 -->
<!-- 此一對一屬于多對一的特例 -->
<!-- 先假設多個人共用一張卡,再給fk_card_id添加唯一約束,就變成了一對一關系 -->
<many-to-one name="card" column="fk_card_id" unique="true" cascade="all"/>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="Clazz" table="tbl_class">
<id name="classId" column="pk_class_id">
<generator class="native"/>
</id>
<property name="className" column="class_name"/>
<!-- inverse="false":不放棄維護關系的權利,由Clazz維護關系 -->
<!-- inverse="true":放棄維護關系的權利,由Student維護關系 -->
<set name="students" inverse="true" cascade="all">
<!-- 一的一方為多的一方指定外鍵 -->
<key column="fk_class_id"/>
<!-- 讓Clazz認識認識students是什么 -->
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="Student" table="tbl_student">
<id name="studentId" column="pk_student_id">
<generator class="native"/>
</id>
<property name="studentName" column="student_name"/>
<many-to-one name="clazz" column="fk_class_id" cascade="all"/>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="Role" table="tbl_role">
<id name="roleId" column="pk_role_id">
<generator class="native"/>
</id>
<property name="roleName" column="role_name"/>
<!-- 對于多對多的關系,需要一張中間表 -->
<set name="users" table="tbl_user_role">
<!-- 中間表,通過什么字段,跟Role表產生關系 -->
<key column="fk_role_id"/>
<!-- 讓Role認識User --><!-- 中間表,通過什么字段,跟User表產生關系 -->
<many-to-many class="User" column="fk_user_id"/>
</set>
</class>
</hibernate-mapping>
<hibernate-mapping package="com.wepull.hibernate.pojo">
<class name="User" table="tbl_user">
<id name="userId" column="pk_user_id">
<generator class="native"/>
</id>
<property name="userName" column="uesr_name"/>
<set name="roles" table="tbl_user_role">
<key column="fk_user_id"/>
<many-to-many class="Role" column="fk_role_id"/>
</set>
</class>
</hibernate-mapping>
public class Export{
private void mian(String[] args) {
Configuration cfg = new Configuration().configure();
SchemaExport export = new SchemaExport(cfg);
export.create(true, true);
}
}