您好、欢迎来到现金彩票网!
当前位置:秒速快3平台 > 双向唯一性 >

【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)

发布时间:2019-08-25 13:44 来源:未知 编辑:admin

  上篇博文【SSH进阶之路】Hibernate映射一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息。如图所示:

  问题来了:如何我们想从身份证端(IdCard)加载人(Person),怎么办呢?

  双向关联映射与单向关联映射的原理是一样的,双向关联映射并不影响存储,只影响加载。所以,双向关联映射和单向关联映射的关系模型是一样的即数据库的表结构是一样的,只是IdCard的实体类和配置文件(IdCard.hbm.xml)发生了一点点变化。

  2、两个对象得关系维护还是由person端决定(因为关系只能由一端维护主键,否则关系就乱了)。

  根据上面的对象模型,我们可以看到Person端没有变化,但是要在IdCard端加上Person的引用,例如Person和IdCard实体类如下。

  无论是单向关联映射还是双向关联映射,他们都属于一对一关联映射,只是他们主键的生成策略不同,分为主键关联映射和唯一外键关联映射。

  由于它们都属于一对一关联映射,所以,hibernate封装双向关联映射时,主键关键映射和唯一外键关联映射的加载策略一样,都采用的是一对一one-to-one name=/one-to-one,只是属性设置不一致,所以,下面我们分开来看IdCard的配置文件。

  同一对一单向关联映射类似,主键关联即利用主键进行关联,关联主键的值相同。下面我们看一下映射文件:

  一对一双向关联映射的外键关联映射也与一对一单向关联映射的外键关联映射类似,在其一对一的指向端(Person)存在一个唯一外键,该唯一外键与被指向端(IdCard)相关联,关联主键的值相同。下面我们看一下映射文件:

  对象模型:有方向性。它到底是单向还是双向是由对象模型决定的即配置文件决定。

  以上内容,只证明了一对一双向关联映射不影响存储即没有改变表结构,但不能证明关联是双向的,需要写相应的测试用例,我们以源码的形式给大家。源码下载

  一对一双向关联映射并不是必须的,是由需求下决定的。如果没有这样的需求,用户也没有要求,系统也不需要,就没有必要建立双向的关联映射。

http://raggedydreams.com/shuangxiangweiyixing/432.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有