- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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
- 2026广东华兴银行秋季校园招聘备考题库附答案详解.docx
- 2026广东省生态环境厅选调优秀大学毕业生2人备考题库及答案详解1套.docx
- 2026建信金融资产投资有限公司校园招聘8人备考题库含答案详解(黄金题型).docx
- 2026广发银行汕头分行校园招聘备考题库带答案详解(名师推荐).docx
- 2026年秋季成都银行校园招聘(第一批次)22人备考题库及答案详解(历年真题).docx
- 2026年度秋季中国工商银行广州分行校园招聘320人备考题库含答案详解(能力提升).docx
- 2026年青海中公农商银行(农信社)校园招聘(含校园引才)备考题库含答案详解(培优b卷).docx
- 2026徽商银行淮北分行综合支行主要负责人招聘备考题库及答案详解(真题汇编).docx
- 2026广发银行西安分行校园招聘备考题库附答案详解(精练).docx
- 2026年西安银行校园招聘备考题库附答案详解(综合卷).docx
最近下载
- 中国铁矿选矿新技术和新工艺.ppt VIP
- 2025年中国全自动振荡仪行业市场全景评估及投资前景展望报告.docx
- AI可信数据空间白皮书-.pptx VIP
- 票管员的年度总结.pptx VIP
- 5篇中心医院医德医风谈话谈心记录(系列完整版).pdf
- T_ZZXJX 18-2021 现浇混凝土空心楼盖结构工程施工及验收技术规程.docx VIP
- 全国大学生职业规划大赛《医学美容技术》专业生涯发展展示PPT【高职(专科)】 .pptx
- 21 小圣施威降大圣 课件(共34张PPT).ppt VIP
- 新时代教育强国的根本遵循知到智慧树期末考试答案题库2025年喀什大学.docx VIP
- 混凝土冬季施工质量控制培训课件.pptx VIP
原创力文档


文档评论(0)