aşağıdaki JPA ek açıklamalarla, iki Varlıkları vardır:@OneToOne ve @JoinColumn, otomatik silme null varlığı, doable?
@Entity
@Table(name = "Owner")
public class Owner implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;
@OneToOne(fetch=FetchType.EAGER , cascade=CascadeType.ALL)
@JoinColumn(name="Data_id")
private Data Data;
}
@Entity
@Table(name = "Data")
public class Data implements Serializable
{
@Id
private long id;
}
Sahibi ve Veri bire bir eşleme vardır, sahibi olan tarafı sahibidir. Yürütme sırasında sorun oluştu: owner.setData (null); ownerDao.update (sahip); "Sahip" tablosunun Data_id değeri boş, bu doğru.
Ancak "Veri" satırı otomatik olarak silinmez. Başka bir DataDao ve iki eylemi sarmak için başka bir hizmet katmanı yazmam gerekiyor (ownerDao.update (owner); dataDao.delete (data);)
Bir veri satırı, sahip olunca otomatik olarak silinebilir mi? Sahibi null olarak ayarladı? senin hazırda sürümüne bağlı
Teşekkür ederim, işe yarıyor! Ve ... CascadeType.DELETE_ORPHAN, kullanımdan kaldırıldı. @OneToOne ile değiştirilmiştir (fetch = FetchType.EAGER, kaskad = CascadeType.ALL, artıkRemoval = doğru) – smallufo
FetchType.EAGER, yetim kaldırma işlemi için çok önemlidir. FetchType.LAZY yetim kaldırma işlemi çalışmıyor. Hazırda sürümü 4.3.10.FINAL. –
Hazırda Bekletme 5.0.11.FINAL kullanma, bu benim için @OneToOne (cascade = CascadeType.ALL, artıkRemoval = true) 'için yeterliydi. "FetchType.LAZY" veya "FetchType.EAGER" kullanarak başarı elde ettim. "EAGER" varsayılan. –