【发布时间】: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