Является ли Hibernate @Cascade(CascadeType.DELETE_ORPHAN) правильным, когда он применяется к @ManyToOne?
Давайте представим сценарий: сущность 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
устарела. Когда я пытаюсь заменить CascadeType.DELETE_ORPHAN
с orphanRemoval = true
, Кажется, что orphanRemoval = true
даже не существует в @ManyToOne
,
Итак, мой вопрос:
Есть ли
AddressHbm
использование@Cascade(CascadeType.DELETE_ORPHAN)
в@ManayToOne
неправильно?Если
@Cascade(CascadeType.DELETE_ORPHAN)
неправильно используется, действительно ли это просто удалить?