hibernate映射

1,多对一(单向)

Xml代码 复制代码  收藏代码
  1. <!--Person端-->  
  2. <many-to-one name="group" column="groupid" cascade="all,none,save-update,delete"/>  
<!--Person端-->
<many-to-one name="group" column="groupid" cascade="all,none,save-update,delete"/>

 

2,一对一(主键,单向)默认了cascade

Xml代码 复制代码  收藏代码
  1. <!--Person端-->  
  2. <!--该段cascade="all"-->  
  3. <id name="id">  
  4.     <generator class="foreign">  
  5.         <param name="property">idCard</param>  
  6.     </generator>  
  7. </id>  
  8. <one-to-one name="idCard" constrained="true"/> <!--constrained属性使数据库添加约束-->  
<!--Person端-->
<!--该段cascade="all"-->
<id name="id">
	<generator class="foreign">
		<param name="property">idCard</param>
	</generator>
</id>
<one-to-one name="idCard" constrained="true"/> <!--constrained属性使数据库添加约束-->

 

3,一对一(主键,双向)

Xml代码 复制代码  收藏代码
  1. <!--Person端-->  
  2. <!--该段cascade="all"-->  
  3. <id name="id">  
  4.     <generator class="foreign">  
  5.         <param name="property">idCard</param>  
  6.     </generator>  
  7. </id>  
  8. <one-to-one name="idCard" constrained="true"/>  
  9.   
  10. <!--IdCard端-->  
  11. <!--该端不维护关系(inverse="false")-->  
  12. <one-to-one name="person"/> <!--默认是主键,所有不用加property-ref属性-->  
<!--Person端-->
<!--该段cascade="all"-->
<id name="id">
	<generator class="foreign">
		<param name="property">idCard</param>
	</generator>
</id>
<one-to-one name="idCard" constrained="true"/>

<!--IdCard端-->
<!--该端不维护关系(inverse="false")-->
<one-to-one name="person"/> <!--默认是主键,所有不用加property-ref属性-->

4,一对一(外键,单向)

Xml代码 复制代码  收藏代码
  1. <!--Person端-->  
  2. <many-to-one name="idCard" unique="true"/>  
<!--Person端-->
<many-to-one name="idCard" unique="true"/>

5,一对一(外键,双向)

Xml代码 复制代码  收藏代码
  1. <!--Person端-->  
  2. <many-to-one name="idCard" unique="true"/>  
  3.   
  4. <!--IdCard端-->  
  5. <!--该端不维护关系(inverse="false")-->  
  6. <one-to-one name="person" property-ref="idCard"/>  
<!--Person端-->
<many-to-one name="idCard" unique="true"/>

<!--IdCard端-->
<!--该端不维护关系(inverse="false")-->
<one-to-one name="person" property-ref="idCard"/>

6,一对多(单向)

Xml代码 复制代码  收藏代码
  1. <!--Class端-->  
  2. <set name="students">  
  3.     <key column="classesid"/>  
  4.     <one-to-many class="Student"/>  
  5. </set>  
<!--Class端-->
<set name="students">
	<key column="classesid"/>
	<one-to-many class="Student"/>
</set>

 

7,一对多(双向)

Java代码 复制代码  收藏代码
  1. <!--Class端-->   
  2. <set name="students" inverse="true"><!-- inverse="true" 多的端不维护关系-->   
  3.     <key column="classesid"/>   
  4.     <one-to-many class="Student"/>   
  5. </set>   
  6.   
  7. <!--Student端-->   
  8. <many-to-one name="classes" column="classesid"/>  
<!--Class端-->
<set name="students" inverse="true"><!-- inverse="true" 多的端不维护关系-->
	<key column="classesid"/>
	<one-to-many class="Student"/>
</set>

<!--Student端-->
<many-to-one name="classes" column="classesid"/>

 

 

8,多对多(单向)

Xml代码 复制代码  收藏代码
  1. <set name="roles" table="t_user_role">  
  2.     <key column="userid"/>  
  3.     <many-to-many class="Role" column="roleid"/>  
  4. </set>  
<set name="roles" table="t_user_role">
	<key column="userid"/>
	<many-to-many class="Role" column="roleid"/>
</set>

 

 

9,多对多(双向)

Xml代码 复制代码  收藏代码
  1. <set name="users" table="t_user_role" order-by="userid">  
  2.     <key column="roleid"/>  
  3.     <many-to-many class="User" column="userid"/>  
  4. </set>  
  5.   
  6. <set name="roles" table="t_user_role">  
  7.     <key column="userid"/>  
  8.     <many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>  
  9. </set>  
<set name="users" table="t_user_role" order-by="userid">
	<key column="roleid"/>
	<many-to-many class="User" column="userid"/>
</set>

<set name="roles" table="t_user_role">
	<key column="userid"/>
	<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>

 

 

10,总结

        10.1:<many-to-one> 会在表中添加字段的

        10.2:cascade 不对查询有影响

你可能感兴趣的:(Hibernate,xml)