JPA 级联更新去孤子

来源:互联网 发布:淘宝全屏轮播尺寸怎么 编辑:程序博客网 时间:2024/05/14 04:12

 在是使用JPA(hibernate)配置实体关系中,经常会遇到通过父实体对象级联批量更新子对象的需求,而且每次更新必须采用合并方式,即原来的所有子删除,只保留本次保存的所有子实体对象。

例子:

A为父对象,持有一个B的集合,A与B的关系为oneToMany. 

第一次保存:设置A下的B集合成员为:1,2,3, 保存A后,B对象对应的数据表为:1,2,3

第二次保存:设置A下的B集合成员为:2,3,4, 保存A后,B对象对应的数据表为:2,3,4 (自动删除无效数据1)

这个就是自动去孤子功能。

 

配置如下:

 

 

Java代码  收藏代码
  1. class A{  
  2.        private Set<B> bs = new HashSet<B>();  
  3.     @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "flowNode", orphanRemoval = true)  
  4.     @OrderBy(clause = "id")  
  5.     public Set<B> getBs() {  
  6.         return bs;  
  7.     }  
  8. }  

 

调用操作代码:

Java代码  收藏代码
  1. A a = new A();  
  2. Set<B> bs = new HashSet<B>();  
  3. bs.add(...)  
  4.   
  5. a.getBs().clear();  
  6. a.getBs().addAll(bs);  

 

0 0
原创粉丝点击