Java Hibernate@Cascade(CascadeType.DELETE#u ORPHAN)在';它适用于@ManyToOne?

Java Hibernate@Cascade(CascadeType.DELETE#u ORPHAN)在';它适用于@ManyToOne?,java,hibernate,jpa,all-delete-orphan,Java,Hibernate,Jpa,All Delete Orphan,让我们想象一下场景:实体公司和实体地址具有一对多双向关系。所以实体地址看起来像: @Entity @Table(name = "address") public class AddressHbm{ @Id @GeneratedValue(generator = "id-generator") @Column(name="address_id") private long id; @ManyToOne(cascade = {CascadeType.PER

让我们想象一下场景:实体<代码>公司和实体<代码>地址具有一对多双向关系。所以实体
地址
看起来像:

@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
}
我将把这些代码迁移到
hibernate4.3
中,其中
CascadeType.DELETE\u ORPHAN
不推荐使用。当我试图用
orphanRemoving=true
替换
CascadeType.DELETE_ORPHAN
时,似乎
orphanRemoving=true
甚至不存在于
@manytone

所以我的问题是:

  • AddressHbm
    是否在
    @manaytone
    中错误地使用了
    @Cascade(CascadeType.DELETE\u ORPHAN)

  • 如果这里误用了
    @Cascade(CascadeType.DELETE\u ORPHAN)
    ,删除它是否有效


我正在使用Hibernate 5.3.6.Final。在@manytone关系中,DELETE_孤儿不为我工作。孤立元素不会被删除。我也在很多关系中尝试过。它删除了引用的行,即使它不是孤立行(wow hibernate)。在版本4.3中我不知道,但在5.3.6中,它对于多通关系是无用的,因此可以删除它。问题是我不知道一个等价的manyToX关系。因此,如果需要删除孤立项,则需要手动删除。