3

シナリオを想像してみましょう: EntityCompanyと EntityAddressには一対多の双方向の関係があります。したがって、エンティティ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_ORPHANorphanRemoval = true、 にorphanRemoval = trueも存在しないよう@ManyToOneです。

だから私の質問は:

  • 間違ってAddressHbm使用@Cascade(CascadeType.DELETE_ORPHAN)しますか?@ManayToOne

  • @Cascade(CascadeType.DELETE_ORPHAN)ここで誤用されている場合は、削除するだけで有効ですか?

4

0 に答える 0