欢迎来到天天文库
浏览记录
ID:38259816
大小:99.34 KB
页数:11页
时间:2019-06-07
《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
3、ype.PERSIST,fetch=FetchType.LAZY,mappedBy="menu")publicList
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
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
此文档下载收益归作者所有