Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibernate: связь между таблицами не по ключю


Автор: _sten_ 23.6.2008, 23:09
 Вобщем есть маппинг:
Код

<class name="org.db.Queue" table="QUEUE">
<composite-id name="id" class="org.db.AgreementId">
            <key-property name="contragentId" type="java.lang.Long">
                <column name="CONTRAGENT_ID"/>
            </key-property>
            <key-property name="taxCode" type="string">
                <column name="CUSTOMER_TAX_CODE" length="10"/>
            </key-property>
            <key-property name="agreementNo" type="string">
                <column name="AGREEMENT_NO" length="32"/>
            </key-property>
        </composite-id>

        <property name="contragentShortName" type="string">
            <column name="CONTRAGENT_SHORT_NAME" not-null="true"/>
        </property>

     
   </class>


и 

Код

<class name="org.db.CustomerPhone" table="CUSTOMER_PHONE" >
        <id name="id" type="java.lang.Long">
            <column name="ID" precision="22" scale="0"/>
            <generator class="sequence">
                <param name="sequence">SEQ_CUSTOMER_PHONE</param>
            </generator>
        </id>

        <property name="taxCode" type="java.lang.String">
            <column name="TAX_CODE" length="10" not-null="true"/>
        </property>

       <property name="phone" type="string">
            <column name="PHONE" length="128" not-null="true"/>
        </property>
</class>


 как видно из маппинга две таблици между собой никак не связаны.  Вопрос в том как в Queue добавить коллекцию CustomerPhone, связанную по TAX_CODE. Тоисть сделать чтото подобное:
Код

       <set name="phones">
            <key column="tax_code"/>
            <one-to-many class="org.db.CustomerPhone"/>
        </set>


проблема в том что хибернет пытается сравнить tax_code из таблици CUSTOMER_PHONE и первичный ключ который композит ид... как задать маппинг что бы hibernate соиденял только по tax_code??? Проблема еще усложняется тем что у Queue композит ид

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)