当java应用于@manytone时,Hibernate@Cascade(CascadeType.DELETE_ORPHAN)是否正确?
让我们想象一下场景:实体Company
和实体Address
具有一对多的双向关系。所以实体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
已被弃用。当我试图用orphanRemoval = true
替换CascadeType.DELETE_ORPHAN
时,似乎orphanRemoval = true
在@ManyToOne
中根本不存在
所以我的问题是:
AddressHbm
在@ManayToOne
中是否错误地使用了@Cascade(CascadeType.DELETE_ORPHAN)
如果
@Cascade(CascadeType.DELETE_ORPHAN)
在这里被误用,只删除它有效吗
共 (0) 个答案