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关系。因此,如果需要删除孤立项,则需要手动删除。