Hibernate中映射文件理解
来源:互联网 发布:日军第四师团 知乎 编辑:程序博客网 时间:2024/06/16 22:14
1)不管是一般的集合,还是一对多、多对多关系,都要使用到set,区别只是前者set中为一般类型,后者为对象。
具体写法:
一般类型
<set name="addressSet" table="user_address_set"> <key column="userId"/> <element type="string" column="address"/> </set>一对多映射
<set name="employees" table="t_employees"> <key column="departmentId"/> <one-to-many class="cn.com.cpf.pojo.Employee"/> </set>
<many-to-one name="department" class="cn.com.cpf.pojo.Department" column="departmentId"></many-to-one>多对多映射
<set name="students" table="teacher_student" inverse="true"> <key column="teacherId"/> <many-to-many class="cn.com.cpf.pojo.Student" column="studentId"/> </set>
<set name="teachers" table="teacher_student"> <key column="studentId"/> <many-to-many class="cn.com.cpf.pojo.Teacher" column="teacherId"/> </set>说明:
1>所有的key指的都是中间表中映射本表主键的那个列
2>所有的name指的都是本类中的属性名称
3>如果set中元素为一般类型,那么set中使用element元素,指定类型和对应的中间表的列
4>如果set中元素为类,那么set中根据情况使用one-to-many或many-to-many,使用class指定类型
2) inverse属性
1> 在一对多关系中,inverse表示是否自己来设置多的那张表中的外键值
2> 在多对多关系中,inverse表示是否自己来往中间表中插入数据
3> inverse讨论的只是外键的操作,cascade讨论的是关联对象操作时候的关系
3) 单向关系
单向一对多
单向多对一
单向多对多
一对一
对于单向关系,只能从维护外键的那一方进行解除关系和删除操作
4) 操作总结
1> 保存
不管何种关联关系,有没有关系,都直接save即可
注意:建议先保存没有外键的一方,这样就可以先生成id,那么有外键的一方保存的时候就可以直接保存,而不用update了
2 > 解除关联关系
实质也就是设置关联的另一方为null
注意:只有维护关联关系,且不是主键关联的才能解除
3> 删除对象
从维护关系的一方删除肯定不会有问题,因为外键就在这里,直接删即可
从没有外键的一方删除会有问题,因为已经被另一方引用了主键
- Hibernate中映射文件理解
- Hibernate 中映射文件的配置模板
- Hibernate映射文件中主键生成方式
- Hibernate映射文件中双主键配置
- Hibernate 中 映射文件的模板
- hibernate映射关系理解
- Hibernate映射文件 lazy?
- Hibernate映射文件 Inverse?
- Hibernate映射文件 Cascade?
- Hibernate映射文件详解
- hibernate映射文件
- hibernate映射文件配置
- Hibernate 映射文件详解
- Hibernate Map映射文件
- Hibernate List映射文件
- Hibernate映射文件配置
- hibernate映射文件配置
- hibernate映射文件
- ODBC配置问题
- ios UI 杂记
- 什么是静态类(static class)
- [C++基础 面对对象的一些知识]
- jquery获得父页面元素
- Hibernate中映射文件理解
- linux 下 select ,poll ,epoll 对比
- 安全函数
- C语言基础——流程控制
- POJ 2112 Optimal Milking (floyd + 二分 + 网络流)
- Win7如何开启Telnet服务
- Linux内核中的Namespace
- 好用的文本UML工具
- linux-test-project/ltp —— 简介