有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

当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) 个答案