1.如果在"one"方中(如部门)写有Set属性,但是没有在映射文件中配置,那么,在获取指定部门下的所有员工时,不会报错,但是,Set内的元素个数为0。输出为"[]"。
2.在映射文件里配置<many-to-one />标签时(写在many方),同时也配置了本实体类的该外键属性。
要设置的属性与其他一般的<property ></property>相比 -- 都有name、column属性,
但用class属性代替了type属性,且class属性值是本实体类要引用的另一实体类的类名。
3.在映射文件里配置<set name="属性名"></set>标签时(写在one方),同时也配置了本实体类的该 Set类型的属性。
其下有两个子标签,<key column="many方的外键列名"/> (表示根据员工表中的部门ID得到相应的Set集合)和<one-to-many class="包名.many的一方类名" />
4.在映射文件里,标签的column属性或column标签的name属性,的值,都是指表的列名。
在映射文件里,除了column标签的name属性,大多数标签的name属性值都是指实体类的属性名。
5.类似于foreach的集合元素遍历
for(类型 临时变量名 : 集合或数组)
{
}
6.<set>标签的两个重要属性:
1) inverse属性,用于标识双向关联中的被动方一端。(默认为false)
非反向端用于把内存中的表示保存到数据库中。
例1:在一对多关系中,若其值为true,那么,当通过部门来删除一个员工时( <set>的cascade属性值为all),即department.getEmployees().remove(employee); 执行后员工表中该员工的departmentId 列的值将改为NULL。
若设置其值为false,那么执行后该员工信息将没有任何改变。
2) cascade属性,用于设置双方如何进行级联。可取值:
all:当任何一方的数据发生改变时,另一方也发生改变。
save-update:只在添加数据或修改数据时才对另一方产生影响。
delete:只在删除数据时才对另一方产生影响。
none:互不影响。
例1:若其值为all或delete,当删除某个部门时,员工表中所有属于该部门的员工将全部被删除。
反之若没有级联删除,员工表中所有属于该部门的员工的departmentId列(外键)的值将被修改为NULL。
7.VO --Value Object 指不包含逻辑代码的值对象(如实体类)
8.在one方定义inverse="true"不会影响级联操作。
分享到:
相关推荐
NULL 博文链接:https://moshow.iteye.com/blog/1587008
Hibernate3.6的小例子,架包代码都有,下下来就可以跑通,易于理解
hibernate初学
本文档适用于J2EE初学者,主要是针对hibernate部分的知识点进行总结,有助于初学者迅速入门
hibernate初学代码 hibernate初学代码 hibernate初学代码
hibernate初学者很好的资料,短时间可以上手。
关于hibernate的Session,向数据插入时的事务隔离级别,持久化对象的状态,对应关系的映射文件,表与表之间的多种映射关系,以及hibernate的二级缓存的笔记。
是本人对hibernate学习的简单总结,更适合初学者下载学习
此时我对初学者一些总结
最简单的Hibernate项目,初学Hibernate的人可以看看。
特别适合初学者的hibernate教程课件
有关java中hibernate的用法及其应用的总结,用于初学者的入门教程.zip
公司级别培训教材,快速学习hibernate,理清hibernate的技术框架,非常适合初学hibernate的人士。
初学python课程总结与感想
这个是针对初学Hibernate一对多主键关联映射的源代码 ,希望对初学者有所帮助,开发环境是MyEclipse7.5和HIbernate3.2
学习hibernate的一些总结,包括一些比较新的应用技术,帮助初学者快速上手,有助于提高效率
该资源总结了java中常见的三大开源框架的知识点,便于初学者学习。
Xilinx 开发板初学者问题总结赛,基于灵思平台FPGA,有问题的欢迎下载
Struts+Hibernate案例(实现增删查改)适合初学者 Struts+Hibernate案例(实现增删查改)适合初学者
额,hibernate并不是很难学,但是对于初学者来说,直接看一个成型的代码是很难看懂的。。这个代码很简单,对于初学者来说,一看即会。 过于搭建hibernate,Myeclipse8.5之后的版本,右键你的项目——Myeclipse——...