Является ли 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) неправильно используется, действительно ли это просто удалить?

0 ответов

Другие вопросы по тегам