hibernate关联关系映射.pptx

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Hibernate关联关系映射北京传智播客教育姜涛

系统设计中三种实体关系北京传智播客教育

数据库实体表之间关系映射数据库采用外键来描述数据表之间的关系一对多:客户和订单的关系创建customers、orders数据表在多方添加一方的外键(在orders表添加customer_id)一对一:公司和公司收信地址关系创建company和address数据表在任意一方添加对方的主键作为外键多对多:订单和商品的关系创建orders和products数据表必须创建第三张关系表,分别引入双方的主键作为外键北京传智播客教育

Hibernate关联关系映射Hibernate是采用Java对象关系来描述数据表实体之间的关系北京传智播客教育

Hibernate关联关系映射一对多关联关系双向关联一对多一对一关联关系双向关联一对一多对多关联关系双向关联多对多北京传智播客教育

一对多关联关系映射北京传智播客教育姜涛

建立多对一关系映射客户和订单是典型的一对多关联关系北京传智播客教育在多方添加对一方关联

建立多对一关系映射在Order.hbm.xml配置many-to-onemany-to-onename=customer class=cn.itcast.one2many.Customer column=customer_id/many-to-one*name:设定待映射的持久化类的属性名字。*column:设定和持久化类的属性对应的表的外键。*class:设定持久化类的属性的类型。*not-null:是否允许为空。北京传智播客教育

建立一对多关系映射仍然采用客户和订单系统北京传智播客教育在一方添加多方集合对象

建立一对多关系映射在Customer.hbm.xml添加set元素setname=orderskeycolumn=customer_idnot-null=true/keyone-to-manyclass=cn.itcast.one2many.Order//setname:设定Customer中集合类型属性名称keycolumn:设置生成数据表中外键字段名称notnull:设置外键字段非空约束one-to-many:设置一对多映射关系class:设置映射关联目标PO类北京传智播客教育

一对多保存操作建立双向关联,保存客户同时保存订单北京传智播客教育只执行session.save(customer);或session.save(order);

一对多保存操作---级联保存北京传智播客教育采用级联保存操作cascade=save-update

一对多保存操作---级联保存测试保存Customer对象,将瞬时的Order对象关联到持久Customer对象北京传智播客教育

一对多保存操作---对象导航北京传智播客教育1、order1关联到customer而customer没有关联到order12、customer关联到order2order3而order2order3没有关联到customer问题session.save(order1)插入几条记录----4session.save(customer)插入几条记录----3session.save(order2)插入几条记录-----1对象导航在配置文件中需要配置2端cascade=save-update

一对多删除操作---级联删除采用级联删除操作cascade=delete北京传智播客教育订单删除了?客户信息还在吗

一对多删除操作---级联删除删除客户数据时,订单数据是否删除北京传智播客教育

一对多删除操作---级联删除从查询的客户对象中移除订单对象,订单对象是否删除?北京传智播客教育

c

a

s

c

a

d

e属性 在对象–关系映射文件中,用于映射持久化类之间关联关系的元素,set,many-to-one和one-to-one都有一个cascade属性,它用于指定如何操纵与当前对象关联的其他对象.北京传智播客教育

双向维护---多余的SQL北京传智播客教育更改订单表id=6的customer_id=3更改为4上面的代码为什么产生两条update语句?如何产生一条语句呢,完成上面的功能呢?Hibernate:updateorderssetorder_number=?,price=?,customer_id=?whereid=?Hibernate:updateorderssetcustomer_id=?

文档评论(0)

158****9376 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档