2009-08-06 14 views
6

Mam klasę A, która ma zestaw B. Jednak te dwa obiekty są połączone przez pola, które NIE są kluczem podstawowym.Hibernuj jeden do wielu używając czegoś innego niż klucz podstawowy

Dla B, mogę używać , ale jak określić, że połączenie powinno być w A. secondary_column? Nie A. table_primary_key_id?

<class table="a"> 
    <id column="table_primary_key_id"> 
    </id> 
    <property column="secondary_column" /> 

    <set table="B" lazy="false" > 
     <key column="B_not_primary" /> 
     <one-to-many class="BClass" /> 
    </set> 
</class>  
+1

Nie sądzę hibernacji pozwoli Ci to, co chcesz. – skaffman

+0

Hibernacja naprawdę NIE POWINIEN Ci to umożliwić. To cuchnie złym projektem bazy danych. Jaki problem próbujesz rozwiązać tutaj? –

+1

Próbuję rozwiązać problem złego projektu bazy danych ... jest to starsza baza danych od ponad 10 lat :) Nienawidzę tego, prześladuje mnie. Mam nadzieję, że przekonam managemnt, aby zmienić go na coś bardziej przyjaznego OO. –

Odpowiedz

4

rozwiązany

<set name="someSet" table="B" lazy="false"> 
    <key column="B_not_primary" property-ref="secondary_column" /> 
    <one-to-many class="BClass" /> 
</set> 
Powiązane problemy