让我们想象一下场景: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)
在这里被误用,是否只删除它有效?