【问题标题】:"orphanRemoval = true" is not deleting child object when delete operation"orphanRemoval = true" 删除操作时不删除子对象
【发布时间】:2015-11-13 16:26:12
【问题描述】:

以下两个类(CD 和 DVD)互不相关。每个都有不同的表。但都有像地址这样的子类。

在保存 DVD/CD 的值时,该条目正在插入相应的表中。因此,当我尝试在 Address_Table 中添加值时,它使用 CD 和 DVD 的主键正确插入。

当我试图删除 Address_Table 中的条目时,它并没有删除 我认为使用“orphanRemoval = true”是行不通的。

对于这个场景,要使用任何相关的注释吗?因为在使用 xml 文件时它工作正常。

//DVD类

@Entity
@Table(name="DVD_Table")
public class DVDPO{

    //some code

    @OneToMany(fetch = FetchType.LAZY,targetEntity=com.AddressPO.class,cascade=CascadeType.ALL, orphanRemoval = true)
    @MapKeyColumn(name="LOG_GUID")
    @JoinColumn(name = "FK_GUID")
    private Map<String, PersistentObject> auditEntry = new HashMap<String, PersistentObject>();

}

//CD类

@Entity
@Table(name="CD_Table")
public class CDPO{

    //some code

    @OneToMany(fetch = FetchType.LAZY,targetEntity=com.AddressPO.class,cascade=CascadeType.ALL, orphanRemoval = true)
    @MapKeyColumn(name="LOG_GUID")
    @JoinColumn(name = "FK_GUID")
    private Map<String, PersistentObject> auditEntry = new HashMap<String, PersistentObject>();

}

//地址类

@Entity
@Table(name="Address_Table")
public class AddressPO{

    @Any(metaColumn = @Column(name = "CLASS_NAME"), fetch = FetchType.EAGER)
    @AnyMetaDef(idType = "java.lang.String", metaType = "string", metaValues = {
            @MetaValue( targetEntity = com.DVDPO.class, value = "DVD"),
            @MetaValue(targetEntity = com.CDPO.class, value = "CD"),    

   @JoinColumn(name="FK_GUID")
   private PersistentObject persistentObject;
}

【问题讨论】:

    标签: java hibernate jpa orm hibernate-mapping


    【解决方案1】:

    要删除 AddressPO,您必须将其与与当前 Session 关联的 DVDPO 和 CDPO 对象解除关联。

    PersistentObject po = ...;
    DVDPO dvdpo = ...;
    CDPO cdpo = ...;
    dvdpo.getAuditEntry().values().remove(po);
    cdpo.getAuditEntry().values().remove(po);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多