2011-10-05 32 views
8

Rezervasyonlarımda bire bir eşlem var. Bir rezervasyon bir odaya ait olmalıdır. Ve bir oda birkaç rezervasyon yapabilir.Hazırda Bekletme 3 Silme kasetinde

Oda silinirse, odanın tüm rezervasyonlarının da silinmesini istiyorum. Hazırda bekletme ek açıklamalarını kullanarak bunu nasıl yaparım? senin Room varlıkta

@Entity 
public class Booking implements Serializable{ 

    @Id @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 
    private Date startDate; 
    private Date endDate; 
    private Date createdDate; 

    @ManyToOne 
    @JoinColumn (name = "roomId") 
    private Room room; 
... 
} 

cevap

10

Bir

@OneToMany(cascade=CascadeType.REMOVE) 
private List<Booking> bookings; 
+0

benim oda varlıktaki rezervasyonların listesini yok olabilir. Ve eğer mümkünse bu şekilde tutmak isterim. Odaya rezervasyon yapmadan bunu yapmanın bir yolu var mı? – user829237

+0

Hayır. Ancak, koleksiyonun eklenmesi size hiçbir ücret ödemeden eklenir (varsayılan olarak tembel olacaktır) – Bozho

3

kullanın

@ManyToOne(cascade = CascadeType.REMOVE) 
+1

Bazı rezervasyonlar kaldırıldığında odayı kaldıracak veya kesinlikle denenecek ve oda diğer rezervasyonlarla ilişkiliyse kısıtlama ihlalleriyle sonuçlanabilir. –

+0

Bu işe yaramadı ... Bir odayı silmeye çalışırken hala kısıtlama hatasını al. – user829237

+0

@Andrei, İkimiz de yanılıyoruz, çünkü bire bir ek açıklama, artıkRemoval özelliğine sahip değil. :) ama teşekkür ederim. Bire-çok olduğunu düşündüğüm için birden fazla birime dikkat etmedim :) Daha sonra sildim :) Yorumda +1 –