Hibernate批量增加和更新带有级联关系的对象

这里我是Spring和Hibernate一起用的,所以不知道单独使用Hibernate是什么效果,下面总结一下经验,留着以后查看
这也算是一种挺常见的问题,一个FatherClass下面有多个ChildClass,新增多条FatherClass,如果ChildClass是不同的,比较好处理,只需要FatherClass Set不同的ChildClass就可以了,但是如果ChildClass是一样的,就会造成ChildClass只会第一次新增的时候使用insert的方法,到了第二次就变成了update,即使使用FatherClass.getChildClass.clear()或者是FatherClass.getChildClass.removeall()的方法再进行第二次的新增也会造成update的结果。
这里说一下我解决的办法,我分成了两部来操作,首先是FatherClass的批量新增,当然只要每次new一个新的FatherClass就能新增了,然后是做子类的新增,把Set<ChildClass>中的子类一个一个取出来,然后new一个ChildClass,Set进去所有的属性和父类,然后再做新增的操作,这样就会每次都进行insert操作了,可能有点笨,但是效果还是挺明显的。
更新操作的时候子类也比较难处理,我的解决方法是将子类删除,然后再新增新更新后的新子类,所以每次都要FatherClass.getChildClass.clear(),然后再FatherClass.setChildClass(Set<ChildClass>),然后再对FatherClass进行更新操作,这样就达到了子类同时也更新的效果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值