请问这两种映射有哪些相同和不同?什么情况下用主键映射什么情况下用外键映射?两种映射的利弊有哪些?求大神回答
第1个回答 2014-11-03
一对一需要外键映射吗 应该不需要吧 只有在一对多 多对多时候才有外键映射
第2个回答 推荐于2016-08-12
关联的方向可分为单向关联和双向关联除了需要考虑关联的方向问题,还需要考虑关联双方的数量问题一对一(One to One)一对多(One to Many)多对一(Many to One)多对多(Many to Many),
当从表中的外键即是主键时,称为基于主键的一对一关联主表的hbm.xml中使用<one-to-one>配置从表的hbm.xml中也使用<one-to-one>配置,同时使用<generator class=“foreign”>,指定其主键与外键相同。
当从表中的外键拥有uinique约束时,称为基于唯一外键的一对一关联主表的hbm.xml中使用<one-to-one>配置从表的hbm.xml中使用<many-to-one>配置,并指定unique属性为true
基于主外键的一对多关系主表的hbm.xml中,
使用<one-to-many>从表的hbm.xml中,使用<many-to-one>
双向的一对多/多对一关系是现实中最为常见的关联关系。追问
当从表中的外键即是主键时,称为基于主键的一对一关联主表的hbm.xml中使用<one-to-one>配置从表的hbm.xml中也使用<one-to-one>配置,同时使用<generator class=“foreign”>,指定其主键与外键相同。
当从表中的外键拥有uinique约束时,称为基于唯一外键的一对一关联主表的hbm.xml中使用<one-to-one>配置从表的hbm.xml中使用<many-to-one>配置,并指定unique属性为true
基于主外键的一对多关系主表的hbm.xml中,
使用<one-to-many>从表的hbm.xml中,使用<many-to-one>
双向的一对多/多对一关系是现实中最为常见的关联关系。追问
能举个简单例子吗?感觉这两个用法差不多,只是不知道什么情况下选择哪个
追答我学习的笔记你看看:一对多的
多对一的:
用法我会写,能举几个实际例子嘛,比如部门和员工需要使用一对多
追答这就是例子,配置文件里面经常会用到这些的,很常用。如果是多对多的话,就比较复杂些,还是多看看实例吧。
本回答被提问者和网友采纳