1,多对一(单向)
-
-
<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
-
-
-
<id name="id">
-
<generator class="foreign">
-
<param name="property">idCard</param>
-
</generator>
-
</id>
-
<one-to-one name="idCard" constrained="true"/>
<!--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,一对一(主键,双向)
-
-
-
<id name="id">
-
<generator class="foreign">
-
<param name="property">idCard</param>
-
</generator>
-
</id>
-
<one-to-one name="idCard" constrained="true"/>
-
-
-
-
<one-to-one name="person"/>
<!--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,一对一(外键,单向)
-
-
<many-to-one name="idCard" unique="true"/>
<!--Person端-->
<many-to-one name="idCard" unique="true"/>
5,一对一(外键,双向)
-
-
<many-to-one name="idCard" unique="true"/>
-
-
-
-
<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,一对多(单向)
-
-
<set name="students">
-
<key column="classesid"/>
-
<one-to-many class="Student"/>
-
</set>
<!--Class端-->
<set name="students">
<key column="classesid"/>
<one-to-many class="Student"/>
</set>
7,一对多(双向)
- <!--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"/>
<!--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,多对多(单向)
- <set name="roles" table="t_user_role">
-
<key column="userid"/>
-
<many-to-many class="Role" column="roleid"/>
-
</set>
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="Role" column="roleid"/>
</set>
9,多对多(双向)
- <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>
<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映射文件和实体类
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
根据实体类生成简单的Hibernate映射文件,对不用Myeclipse的童鞋还是有用
关于hibernate映射和查询,使用MySQL,适合初学者的练习
用来生成hibernate映射文件.从而实现不需手动写入。。。很实用的东东哦。。
常用 Hibernate 映射配置说明.doc
myeclipse自动生成hibernate映射文件
用MyEclipse自动生成hibernate映射文件和实体类
hibernate映射枚举类型,hibernate如何映射枚举类型
用Hibernate映射继承关系
Hibernate映射解析 七种映射关系
Myeclipse生成Hibernate映射文件
Hibernate映射配置实例大全:详细总结了Hibernate的各种映射配置的方法,并逐一举例
Hibernate映射集合属性List,用于映射集合属性 List Hibernate 自动生成表 不需sql
hibernate 映射关系 小结
hibernate 映射关系学习入门 多对多实体映射 源码
hibernate 映射关系学习入门 一对一映射Eclipse源码
hibernate 映射文件 配置分析及要点,你还在为配置hibernate 映射文件而发愁吗?这里总结了它的常用元素及属性。session,SessionFactory的应用