много ко многим один и тот же ПК - PullRequest
1 голос
/ 21 августа 2009

Как мне поступить, если у меня две таблицы и их первичные ключи имеют одно и то же имя, как предлагает следующий файл сопоставления XML?

<class name="Person" table="person">

    <id name="uid_" type="java.lang.String" column="uid">
        <generator class="native" />
    </id>

    <property name="name_" type="java.lang.String" column="pName" />
    <property name="age_" type="integer" column="age" />
    <property name="birthday_" type="date" column="birthday"/>

    <many-to-one name="school" class="School" column="schoolID" unique="false" />

    <bag name="course">
        <key column="uid" />
        <many-to-many class="Course" column="uid" />
    </bag>

  </class>

Первичный ключ человека и курса называется "uid". Спящий режим говорит «Повторный столбец в отображении».

Ответы [ 2 ]

2 голосов
/ 21 августа 2009

Измените имя, данное столбцу в отношении многие ко многим.

<bag name="course">
        <key column="uid" />
        <many-to-many class="Course" column="course_uid" />
</bag>

Столбец в сопоставлении отношений не является идентификатором столбца курса, это просто имя, которое будет использоваться в таблице отношений.

0 голосов
/ 25 августа 2009

Вы можете отобразить свое сопоставление «многие ко многим» как составной элемент следующим образом

Вместо

<bag name="course">
    <key column="uid"/>
    <many-to-many class="Course" column="course_uid"/>
</bag>

Попробуйте

<bag name="course">
    <key column="uid"/>
    <composite-element class="Course">
        // define properties here
    </composite-element>
</bag>

Работает независимо от файла отображения курса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...