シナリオを想像してみましょう: 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_ORPHAN
とorphanRemoval = true
、 にorphanRemoval = true
も存在しないよう@ManyToOne
です。
だから私の質問は:
間違って
AddressHbm
使用@Cascade(CascadeType.DELETE_ORPHAN)
しますか?@ManayToOne
@Cascade(CascadeType.DELETE_ORPHAN)
ここで誤用されている場合は、削除するだけで有効ですか?