00:00
下边呢,研究一下这个单向一对多。我们需要把我们现在的这个。吃类简单的改一下order里边我们看哈,把这个给它住掉对吧。除掉。这个也需要助教。Ctrl shift o好了,这样的话呢,这个里边。就没有卡信息了,对吧。布掉了,然后的话呢,我们找到我们的customer,我们来填order的集合属性set OS等new哈西set。加上对应的get。下面我们来干什么呀?映射单项一对多的关联关系,一对多one two。
01:06
Money。同样我是不是也需要映射那个外键啊,使用什么呀?At join column,外间列的名字我们叫customer ID搞定,所以说映射方式跟前面是类似的。使用one to many来映射一对多的关联。关系,然后使用at John column来映射外建列的。名称好的搞定。这里边呢,有点错误,这个错误,因为是刚才那个测试是吧,我在把这部分测试的话呢,我给它注释掉,从这面开始结束应该是到。
02:12
到这对吧。好像还结束不了哦,因为我这块有什么呀。我这块儿有这个啊。多行,多行注释。这样吧。注释。这个可以放到这。嗯。行。这样的话呢,前面呢,我就住掉了,然后我们先把这张数据表给它删除。不要他。重新看,重新来生成数据表,Test one to,找一个。
03:07
生成。生成数据表了吗?看aus打开右键。Out cable啊,外键还是没问题的,OK好吧,下面的话呢,我们来用方法测试一下,我还是先在执行一个保存。代码跟后边这个类似,我把这个代码给它复制过来。CTRLC。CTRV这个呢,改一下改成CC。哦。JCE。O c two。建立关联关系,orders.order一点get orders.a order two。
04:16
执行保存操作。跟manager点。Persist。Customer entity manager。OUT1MANAGER per order two先看保存能不能成功。走起。最后一句。三条insert,两个update,保存怎么样?九看保存成功了没问题吧,诶,但是我们看到什么呀,它会多出两个update,这个我们在harm的时候呢,讲过这种类似的情况是吧,因为这个时候怎么了,由一的一端维护关联关系,所以说你在保存order的时候,Order不维护关联关系,那么order就不会。
05:17
Order我们看哈,Order order就不会去放那个外键列的值,所以说只能是额外的去发update,跟你这个先后顺序的关系不大,你改了。把这个关系改了,它还是会发update,我们看看。YY。喂喂。喂喂,好,再走。他一样是会发update。数据表搞一搞。没问题对吧,所以说这块的话呢,我们说一下,针对于one to many。
06:00
单项一对多。关联关系执行保存时一定会多to update语句,为什么呀?因为多的一端在插入时不会同时。插入外键里,所以说会多出update,这是我们说的这个保存,我们再来看一下获取吧,One to find获取,我来获取一个。等于nity manager点点class。
07:00
八是吗?就说错了哈,就。九来stem.get stem.get orders点。走起看效果。XQ语卷大家看。哎,先打的CC后去查询的orders看见了吗?默认使用懒加载的加载策略。默认使用。默认对关联的多的一方。使用plan加载的加载策略,那好了,那这个值能改吗?貌似也可以吧。
08:00
过来有一个fetch改为什么呀。一默认是lazy改为一。走。看一句大家看怎么样,这个时候的话呢,改为一格的话,它就变成了主要链接吧,好了。同样可以使用a to many的fetch属性来属性来修改默认的加载策略。好,这个的话呢。这块我也复制一份。这是查询,我们再来看一下。删除。One two men,吕木。
09:03
Remove的话呢,我应该是先查询C。CTRLC过来看哈,我要干什么呀?执行删除操作,点delete。没有delete方法,Delete是session的是吧,铝木。能删成功吗?删成了删成了,不过怎么了,它是先把这个外键给至空删的,你看这个时候怎么了,它是空是吧,这个时候这条记录被删除就没有了,看见了吗?没了诶。说默认情况下,若删除一的一端,则会先把。
10:00
关联的多的一端的外键质控,然后进行。删除可以修改吗?大家觉得呢,可以修改吗?Caca有吧,这个值有caca,我们看一眼哈,Caca有caca type是一个数组kasca的。Help,点看这个值的话呢,我们可以给它改为什么呀。有这么多改为一个幕,比方说我我想再删一的一端的同时,把多的一端也删除,好用吗?怎么办呢?这个我这样,我把这个改为八可以吧。八八好保存。那现在我把这个改一下。
11:00
改为吧,我们希望看到一个级联删除的效果。是吗?哎,果然是一个吉联,删除删啦。再来这个把也删除了对吧?诶这就是级联删除说可以通过修改at to many的cacat属性来。修改可以通过它的这个属性来修改默认的删除策略。CTRLC这块我也加一个注解好的。这是删除关于caca的其他这个属性值的话,大家自己去看文档,或者是自己去看那个,嗯,属性值的这个含义,你就能知道它是什么意思,这个呢,通常情况下用的还不怎么多,所以说你做一个了解就可以了。
12:09
下面我们来看查询,不是查询,是修改是吧,正常改查嘛,Update at test。我先来获取一个cut。CTRLCCTRLV,这应该是十了吧,十。看一眼。时对关联的,好了,我来改其中的一个customer.get点点。next.set。OXXX。是。走起。
13:00
看见了吧,哎,这个修改是没问题的。刷新一下修改了。哎,这就是我们单向一对多关联关系的增删改查,再过来看一眼它。实际上的话呢,嗯,使用。One to many进行映射,这里边我们主要讲了这样的两个属性,一个是fetch,一个是cascat,然后呢,使用John column来映射那个外键列。其他的我们这个测试还是很多,跟harnet那个是相一致的,对吧。
我来说两句