Hibernate级联保存与删除

Hibernate级联保存与删除

ID:38259816

大小:99.34 KB

页数:11页

时间:2019-06-07

Hibernate级联保存与删除_第1页
Hibernate级联保存与删除_第2页
Hibernate级联保存与删除_第3页
Hibernate级联保存与删除_第4页
Hibernate级联保存与删除_第5页
资源描述:

《Hibernate级联保存与删除》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate为程序员提供一种级联操作,在编写程序时,通过Hibernate的级联功能可以很方便的操作数据库的主从表的数据,我们最常用的级联是级联保存和级联删除,下面分别来看一下级联保存和级联删除。我准备了MenuPanel和Menu两个对象,先来看一下两个对象的关系从上图可以看出,MenuPanel和Menu是一对多的关系,Menu表同时存在多个子节点,用parentId代表该节点的父节点。在JPA中,配置级联操作我们可以用cascade=CascadeType.ALL,意思是支持所有的级联操作,网上有很多文章说

2、级联保存用CascadeType.PERSIST,这也是可以的,我们分别在代码中使用以上两个类型。在MenuPane的getChildren()方法中标上下面的注解:@OneToMany(cascade=CascadeType.PERSIST,fetch=FetchType.LAZY,mappedBy="menu")publicList

getChildren(){returnchildren;}在Menu的getChildren()的方法中标上下面的注解@OneToMany(cascade=CascadeT

3、ype.PERSIST,fetch=FetchType.LAZY,mappedBy="menu")publicList

getChildren(){returnchildren;}以上代码实现级联保存的配置,我们需要在业务逻辑中为对象设置关系,这样Hibernate才能自动实现级联保存,如果只是配置了级联操作,而没有在对象中设置对象之前的关系,Hibernate是无法实现级联保存的功能的。首先实例化MenuPanelMenuPanelpanel1=newMenuPanel("基础设置");再实例化几个Menu

4、MenumenuCard=newMenu("会员卡设置","");menuCard.setLeaf(false);Menumenu1=newMenu("卡类型设置","basicOperation/queryCardType");Menumenu2=newMenu("站点设定","basicOperation/querySite");Menumenu3=newMenu("操作员授权","basicOperation/queryOperatorSet");Menumenu4=newMenu("密码修改","test.do

5、");Menumenu5=newMenu("消费项目管理","test1.do");我们要把menuCard作为menu1的父节点,故作如下设置List

cardChildMenus=newArrayList();cardChildMenus.add(menu1);menuCard.setChildren(cardChildMenus);//把卡类型设置作为会员卡设置的子菜单设置对象之间的关系,这一步很关键,直接影响保存结果menu1.setMenu(menuCard);//为会员卡设置设置卡类型

6、设置,以支持级联保存menuCard.setMenuPanel(panel1);//设置Menu属于MenuPanelmenu2.setMenuPanel(panel1);menu3.setMenuPanel(panel1);menu4.setMenuPanel(panel1);menu5.setMenuPanel(panel1);//将Menu添加到MenuPanelpanel1.getMenus().add(menuCard);panel1.getMenus().add(menu2);panel1.getMenus

7、().add(menu3);panel1.getMenus().add(menu4);panel1.getMenus().add(menu5);具体代码:@OverridepublicbooleantestAdd(){ListmenuPanels=newArrayList();MenuPanelpanel1=newMenuPanel("基础设置");MenumenuCard=newMenu("会员卡设置","");menuCard.setLeaf(false);Menumen

8、u1=newMenu("卡类型设置","basicOperation/queryCardType");Menumenu2=newMenu("站点设定","basicOperation/querySite");Menumenu3=newMenu("操作员授权","basicOperation/queryOperatorSet");M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。