00:00
下面我们来看基于主键映射的这个一对一。我们直接来看这个关系数据模型。啊,也是由departments到managers这样的一个双向的一对一映射。我们来对比这两个图哈,基于主线映射的一对一,这个时候这个ma的表跟这个是。一样的,而这个department表呢?是不是少了一个外键呢?具体说应该少了一个外键列是吧,但是这个外键呢还在,这是直接拿这个主键做。外键清楚了吧,就是说这两条记录的主键完全一样,这不就可以了吗?按主键去对应。基于主键映射的一对一。指一端的组件生成器使用foreign策略。表明根据对方的主见来生成自己的主见,自己并不独立生成主见,什么意思啊,哎,我自己这个主见啊,我靠对方那个主见。
01:07
来生成,即参照对方那个主键,而当前这个主键作为对方的一个外键存在。那我们这个。它会有一个参数叫PP子元素指定使用当前持久化类的哪个属性作为对方。采用foreign主机生成器策略的一端。增加one to one来映射关联属性,两面直行都是one to one哈,其中one to one还需要增加一个con straight等于true。什么意思啊?添加上这个外键约束,如果没有这个属性的话呢,就不会设定那个外键约束。而另外一端使用one to one就可以了。测试一下。把这个拿上去。
02:00
我们primary。Primary。打开。这个是departments,这个时候呢,我们这个主线。不使用native。改为使用。还需要评一下。我参照。哪一个的主键来生成啊,那我这个告诉他按照的属性叫property,属性名叫什么呢?MB吧。Department是有一个mdr吗?当前这个组件参照。
03:03
这个持久化类那个组件。回来。后边这个使用关图案。One one。Name。Class。Engineer。我们这样把这个拍给拿出来。X。这就可以了。而这边呢?不需要改。啊,需要改把这个去掉是吧。我们不太不太需要这个property。然后这个改为primary。我们再来修改这个。Harm配置文件里边这个resource等于primary。
04:06
被改为。Primary。把先前的数据表删除。直接进行测试就可以了。按一下这个save。走一个。那没问题,我们看两条insert刷新一下吧,一个。F5,再看一下没问题。生成了。那个外键关联在吗。外键关联应该看这个吧。Out cable。Foreign。
05:01
这应该是以前的哈。再打开。Out table看是不是没有这个外键关联呢,为啥呀,因为我们没有指定那个。对吧。回来。这里边儿我用的foreign,我在one two one里边我需要指定一个。等于。分数。他表示。在当前这个for组件生成器上面添加一个外键约束。那我们再插入一次吧。我们再插入一个AA。有一个。看一看这个数据表是不是会有变化呢?Out table for,有了吧?这个时候呢,这个department ID的确是关联manager表的,Manager表的这个主件。
06:07
打开open,哎,你带小钥匙了,没问题。插入成功,那这个插入的话会有这个顺序关系吗。写歌CC。哎,喂。DC,刚才那个是OK的,没有update这个呢。这种。这个也没有,这看到了吧。哎,为什么呀?我们看看这个四口语句哈。这个新插入的是manager,然后再插入department,那我插入department的时候,我就知道,哎,你这个主线是什么了,所以说没有update,我调个顺序。来看。
07:03
改为注意这个顺序哈,先插入的是。再插入的是。Department。先插入,后插入manager,按这个顺序。大家看它是不是也先插入麦,为什么呀,你想插这个de department他们都插不进来,懂吗?我没有主见,你要说一个外键列,我还可以先整个空的,然后update主键列搞不了,主键列搞不了空的非空,而且唯一嘛,所以说他只能等着这个manager插入成功之后再插入department清楚吧,所以说嗯,这个先插入哪一个都可以。一天插入哪一个哦。不会有。多余的。
08:00
再来看一下查询。拿掉。拔掉。先看第一稿。我先来查department。也有懒加载没问题,我再来查manager。哎哟。这个没问题哈,查part他们的没有问题,我查manager的时候怎么了,是不是用了一个主要链接呀。为什么?道理跟我们上节课讲的是一样的,因为我在查manager的时候,我在manager这个表里边。并没有什么外建是吧,我就不知道跟我关联那个department department是谁,所以说的话呢,这块我需要用到一个主要链接,但此外呢,没有多余的词口语句是吧,那前面的这个效果。
09:06
是一样的。看一下。直接是一个主要链接啊,先搞到manager,再搞到department,我们注意到on这个条件是不是manage ID等于department ID啊。就是用主键连吗。对,里边不需要使用那个property reference使用的话呢,反倒不对了。OK,皎洁一下。打开我们的映射文件。先看我们的department,这里边的话呢,我们使用外键的方式来生成当前组件。只用外键的方式来生成当前的点。其中。属性,Property属性。
10:04
指定使用当前持久化类的哪一个?属性。主性的主件作为外件啊,我用manager对应那个持久化类的主件作为当前组件的外件。看哪个呀,看这个。在这儿呢吗?OK,还需要有一个注意的地方。这句话的话呢,我直接复制了。改用方轮主键生成器的一端使用干图案来映射互联属性。
11:06
温图案DC。白银增加钢,钢等于住什么意思啊?月等于处乙。是当前。组建。上添加。外界约束。上面这个的话呢,仅是说哎,我用外键生成主线,并没有那个外键约束,我指定这个的话呢,就会把那个外键约束添上。是吧,那我们在测试的时候,这两个测试都是比较正常的,我们有了进门基础的话,这两个测试的问题不大。
我来说两句