2009-09-25 22 views
8

A ve C varlık sınıflarım var. Bunlar, tblA ve tblC tablolarını eşleştiriyorlar ve aralarında eşleştirmek için tblB ile aralarında çoktan çoğa ilişkisi var. tblB, A_ID, C_ID ve SetDate'i içerir, sonuncusu ayarlandığı tarihtir, dolayısıyla ilişkiye bir özniteliktir. Sorum şu: Bu öznitelikte nasıl en iyi şekilde harita kurabilirim? Şu anda bu gibi bağlanılmayan konum:Çoktan-çok ilişkilerde Öznitelikler (Hazırda Beklet)

A:

@ManyToMany(targetEntity=C.class, cascade={ CascadeType.PERSIST, CascadeType.MERGE }) 
@JoinTable(name="tblB", [email protected](name="A_ID"), [email protected](name="C_ID")) 
private Collection<C> Cs; 

C:

@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "Cs", targetEntity = A.class) 
private Collection<A> As; 

nasıl tblB.SetDate bundan çıkmak gerekir?

Alkış

Nik

+0

+1 ilginç soru – KLE

cevap

10

Bildiğim kadarıyla mümkün değil bu şekilde eşleştirmek için , One-To-Many ve çok-to-One ilişkiler, B ile ortada. Çıkacağın evolutivity bu eksikliği için


B.

bir özelliği olur, hazırda dokümantasyon baştan genelde To-Many-çoğu ve kullanımı iki ilişki önlemek için tavsiye eder.

+1

Merhaba, girişiniz için teşekkürler. Varlık veri tabanlarını tutarken çoktan çoğa kaçınma, şu an yaptığım gibi eski veritabanlarını eşleştirirken her zaman mümkün olmayabilir. – niklassaers

+0

Eski veritabanıyla da başa çıkmalıyım! Ayrıca, ders sayısını azaltma arzunuzu da paylaşıyorum. Bu durumda, eğer fazladan bir alana ihtiyacınız varsa, başka seçenekleriniz olduğundan emin değilim ... – KLE

3
+0

Tabii ki, artan kod miktarıyla yeni bir varlık ekleyebilirim, ancak kod seviyesini düşürmek istiyorum. – niklassaers

+0

@niklassaers yapmanın herhangi bir yolu var mı diye bir ilişkiyi eklemeyi tercih ederim. Hiçbir yol olmadığını düşünüyorum ama eğer alırsanız bizimle paylaşın. Saygılarımla, –

+0

Teşekkürler Arthur, yapacağım. :-) – niklassaers

İlgili konular