让我们想象一下场景:EntityCompany和 EntityAddress具有一对多的双向关系。所以实体Address看起来像:
@Entity
@Table(name = "address")
public class AddressHbm{
@Id
@GeneratedValue(generator = "id-generator")
@Column(name="address_id")
private long id;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
@JoinColumn(name="company_id")
private Company company = null;
@Column(name="address_name")
private String name;
// other properties and methods
}
我要将这些代码迁移到不推荐使用的Hibernate 4.3地方CascadeType.DELETE_ORPHAN。当我试图用 替换CascadeType.DELETE_ORPHAN时orphanRemoval = true,它似乎orphanRemoval = true甚至不存在于@ManyToOne.
所以我的问题是:
AddressHbm使用不@Cascade(CascadeType.DELETE_ORPHAN)正确@ManayToOne?如果
@Cascade(CascadeType.DELETE_ORPHAN)在这里被误用,是否只删除它有效?