Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Hibenate many-to-many


Автор: oson 26.12.2006, 20:45
Господа!
Подскажите плиз.
Пример из документации

Код

<class name="Address">
    <id name="id" column="addressId">
        <generator class="native"/>
    </id>
    <set name="people" inverse="true" table="PersonAddress">
        <key column="addressId"/>
        <many-to-many column="personId"
            class="Person"/>
    </set>
</class>


а как пиcать мэппинг, если у класса Address композитный примари кей - например
Код

<class name="Address">
    <composite-id  name="addressId"   class="AddressId" >
         <key-property name="houseNumber" column="HOUSE" type="integer" />
        <key-property name="zipCode" column="ZIPCODE" type="string"/>
      </composite-id>
      <set name="people" inverse="true" table="PersonAddress">
        <key column=column="????????"/>  <!-- что тут писать? -->
        <many-to-many column="personId"  class="Person"/>
    </set>
</class>

<class name="Person">
    <id name="id" column="personId">
        <generator class="native"/>
    </id>
    <set name="addresses" table="PersonAddress">
        <key column="personId"/>
        <many-to-many column="????????"  <!-- что тут писать? -->
            class="Address"/>
    </set>
</class>



Автор: tux 26.12.2006, 22:23
Пример из той же документации:
Код

<class name="User" table="`User`">
    <composite-id>
        <key-property name="name"/>
        <key-property name="org"/>
    </composite-id>
    <set name="groups" table="UserGroup">
        <key>
            <column name="userName"/>
            <column name="org"/>
        </key>
        <many-to-many class="Group">
            <column name="groupName"/>
            <formula>org</formula>
        </many-to-many>
    </set>
</class>
    
<class name="Group" table="`Group`">
    <composite-id>
        <key-property name="name"/>
        <key-property name="org"/>
    </composite-id>
    <property name="description"/>
    <set name="users" table="UserGroup" inverse="true">
        <key>
            <column name="groupName"/>
            <column name="org"/>
        </key>
        <many-to-many class="User">
            <column name="userName"/>
            <formula>org</formula>
        </many-to-many>
    </set>
</class>

Вот отсюда: http://www.hibernate.org/hib_docs/v3/reference/en/html/example-mappings.html#example-mappings-composite-key-manytomany. Однако, разбираться с этим тебе самому, реальных задач где необходимы такие структуры, очень мало, вряд ли многие использовали. Вообще сами же товарищи из Hibernate не рекомендуют использовать many-to-many, смотри http://www.hibernate.org/hib_docs/v3/reference/en/html/best-practices.html.

Автор: oson 27.12.2006, 15:47
Спасибо

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