- 1、本文档共80页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate_映射配置文件详解汇
双向 1-N 测试程序1产生的 sql 语句: 仅仅save(customer),并没有save(order)但却执行了三条SQL,由生成的SQL语句可以知道,将用户 TongGang 添加到Customers表中的同时也将 order1及order2添加到Orders表中!这是因为在 Customers.hbm.xml 映射配置中,set节点的设置了cascade=save-update,所以当保存或更新Customers的时候也会自动保存相应的Orders对象! 双向 1-N 注释掉测试程序 1 中的订单关联用户的代码: 生成同样的 sql 语句,同样的数据表 customers_table 中插入的数据 orders_table中插入的数据 在Customers.hbm.xml的set节点中加了属性 inverse=true,这句话的意思是将主控制权交出去:交给了Orders,也就是用户与订单之间从属关系主要是由Orders对象来确定,也即订单自己来决定它属于哪个对象。所以在这里,将订单关联用户的代码注释掉后,虽然后面用户关联了订单,但因为用户已经将主动权交出,所以Hibernate在save订单的时候并不知道订单是属于哪个用户,自然Customers_ID字段填空值。 双向 1-N 将Customers.hbm.xml中的 inverse=true 去掉 生成的 sql 语句: 数据库表及插入的数据跟第一种情况相同 原来这种情况,Hibernate是先将订单持久化到表中,因为注释了订单关联用户的代码,所以Hibernate还是先插入空值,然后再根据用户关联订单来更新Orders表将 Customers_ID字段修改为正确的值!当数据量很大的时候,这样的操作会影响性能,同时不能将customers_ID字段定义为not null。 双向 1-N 将inverse=true加上,而用户关联订单的注释掉 生成的 sql 语句: 运行结果是仅仅将 用户添加到表中去了.关联是仅仅减缓到订单属于哪个用户,也就是关联订单的 customers_ID 字段!但用户类里,属性 Set orders = new HashSet();初始是为空的,这样虽然订单关联了用户,但用户对象内的orders属性还是为空,订单并没有产生,这样Hibernate在保存用户的时候,判断集合为空,不会去添加订单. inverse 只有集合标记(set/map/list/array/bag)才有inverse属性 在 Hibernate 中,inverse 指定了关联关系的方向。关联 关系中 inverse = false 的为主动方,由主动方负责维护 关联关系 在没有设置 inverse=true 的情况下,父子两边都维护父子 关系 在 1-N 关系中,将 many 方设为主控方(inverse = false) 将有助于性能改善(如果要国家元首记住全国人民的名字,不 是太可能,但要让全国人民知道国家元首,就容易的多) 在 1-N 关系中,若将 1 方设为主控方 会额外多出 update 语句。 插入数据时无法同时插入外键列,因而无法为外键列添加非空约束 cascade 只有关系标记才有cascade属性:many-to-one,one-to-one ,set(map, bag, idbag, list, array) + one-to-many(many-to-many) 级联指的是当主控方执行操作时,关联对象(被动方)是否 同步执行同一操作。 pojo和它的关系属性的关系就是“主控方 -- 被动方”的关 系,如果关系属性是一个set,那么被动方就是set中的每一 个元素。 一个操作因级联cascade可能触发多个关联操作。前一个操作 叫“主控操作”,后一个操作叫“关联操作”。 inverse 指的是关联关系的控制方向,而cascade指的是层级之间的连锁操作。 cascade cascade属性的可选值: all : 所有情况下均进行关联操作。 none:所有情况下均不进行关联操作。这是默认值。 save-update:在执行save/update/saveOrUpdate时进行关联操作。 delete:在执行delete时进行关联操作 delete-orphan:表示删除孤儿,delete-orphan在前者的基础上增加了一点,针对持久化对象,如果它和它所关联的对象的引用关系不存在了,则进行级联删除。 all-delete-orphan:包含all和delete-orphan的行为 双向N-N关联 双向N-N关联需要两端都使用集合属性,两端都增加对
您可能关注的文档
- DiaSorin Liaison全自动化学发光免疫分析仪标准操作规程汇.doc
- DJNB电动机经济运行控制器使用说明书汇.doc
- DLP大屏无缝拼接方案汇.doc
- DHCP_原理及其工作过程汇.ppt
- DJP200型架桥机使用说明书汇.doc
- DMP3300系列微机变压器保护测控装置技术说明书(V2.0)汇.doc
- DNS服务搭建汇.ppt
- DOE基础知识(minitab软件操作实例讲解DOE)汇.ppt
- DF3361EA电动机保护测控装置技术说明书汇.doc
- DEUTZ道依茨发动机结构介绍汇.ppt
- 第2课 诸侯纷争与变法运动(课件)-高三统编版(2019)必修中外历史纲要上一轮复习 (1).pptx
- 第三课 多极化趋势课件-高考政治一轮复习统编版选修一当代国际政治与经济.pptx
- 第3讲 魏晋至隋唐 统一多民族封建国家的曲折发展和强盛时期 课件高三历史统编版(2019)二轮复习.pptx
- 大数据数字小镇工程项目招商引资方案.pptx
- 第2课 诸侯纷争与变法运动(课件)高三统编版(2019)必修中外历史纲要上一轮复习.pptx
- 20XX年教师学习学校制度心得体会多篇.pdf
- 20XX年9月反洗钱培训终结性考试题(判断选择多选原题汇总.pdf
- 20222021届高三下学期第二次联考英语试题及答案.pdf
- 一年级语文上册《日月山川》教学课件.pptx
- 2022年福建省漳州市中考物理试卷解析.pdf
最近下载
- 桥牌入门-课件(PPT演示稿).ppt
- 教科版(2017)小学科学四年级上册各单元测试练习及答案(附期中期末练习).pdf
- 博雅汉语初级起步篇第15课说课材料.ppt
- 东风本田-思威(CR-V)-产品使用说明书-两驱CR-V豪华版Vti-DHW6453R3CSD-思威(CR-V)用户手册.pdf
- 云南名扬药业有限公司的营运能力分析.doc VIP
- 种牙得牙--口腔种植学.pptx
- 图解:种牙与镶牙的区别,缺牙的赶紧看.pdf VIP
- 萃取盐酸洗涤液的锡铟分离的方法及其应用.pdf VIP
- 传统节日剧本.doc
- EMERSON艾默生 Guide OpenEnterprise OPC Server Reference Guide说明书用户手册.pdf
文档评论(0)