3

让我们想象一下场景: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_ORPHANorphanRemoval = true,它似乎orphanRemoval = true甚至不存在于@ManyToOne.

所以我的问题是:

  • AddressHbm使用不@Cascade(CascadeType.DELETE_ORPHAN)正确@ManayToOne

  • 如果@Cascade(CascadeType.DELETE_ORPHAN)在这里被误用,是否只删除它有效?

4

0 回答 0