5

Tek bir sınıfı iki tabloya eşlemeliyim (her ikisi de birden çok sütunlu birincil anahtarla). TABLE1'in id1, id2, id3 ve TABLE2'nin id1, id2 birincil anahtarı olduğunu varsayalım. eşleme dosyası yazarken Şimdi aşağıdaki gibi bir şey yapacağını:<join> etiketini kullanarak hazırda bulunan eşleme dosyasında iki sütuna nasıl katılırım?

<hibernate-mapping package="beans"> 
    <class name="TABLE1Class" table="TABLE1"> 
    <composite-id name="table1PK" class="TABLE1PKClass"> 
     <key-many-to-one name="id1" class="ID1Class" column="id1"/> 
     <key-many-to-one name="id2" class="ID2Class" column="id2"/> 
     <key-many-to-one name="id3" class="ID3Class" column="id3"/> 
    </composite-id> 
    <property name="someProperty" type="integer" not-null="true" column="x"/> 
    <join table="TABLE2"> 
     <key column="id1" /> 
     <!-- <key column="id2"/> The join tag accepts only one key tag!!! 
How do I map the second key??? --> 
     <property name="propertyFromTable2" type="float" not-null="true"/> 
    </join> 
    </class> 
</hibernate-mapping> 

gibi, etiketin yalnızca bir anahtar etiketi kabul katılmak görebilirsiniz! İkinci kimliği nasıl eşlerim?

Saygılarımızla,
Despot
PS: İyi Noeller ve Mutlu ve Üretken Yeni Yıl;)

cevap

2

<key> içerebilir birden <column> elemanlar:

<key> 
    <column name = "id1" /> 
    <column name = "id2" /> 
    <column name = "id3" /> 
</key> 
+1

Merhaba axtavt, ben takip talimatlarınız ve bu, çokluktaki problemi çözdü, fakat TABLE2'de (id1, id2) iki kimliğim olduğu için başka bir istisna oluştu: "org.hibernate.MappingException: Yabancı anahtar (FK: TABLE2 [id1, id2])) aynı sayıya sahip olmalıdır başvurulan birincil anahtar olarak sütunların r (TABLE1 [id3]) ". – despot

+1

Burada açıklandığı gibi bir kukla sütun sağlamayı denedim https://forum.hibernate.org/viewtopic.php?p=2229088&sid=a709d63dc318557b72b76366b8d7b804 (), ama aldım: "org.hibernate.MappingException: Yabancı anahtar (FK: TABLE2 [id1, id2, id3])) başvurulan birincil anahtarla aynı sayıda sütuna sahip olmalıdır (TABLE1 [id3])". Herhangi bir öneri? – despot

+0

@despot Merhaba, uzun süredir bu sorunu çözdünüz mü? Eğer öyleyse, nasıl olduğunu söyleyebilir misiniz? Şimdi sadece aynı belaya sahip olmak :) –