спящий режим - отображение ПК на 2 столбца - PullRequest
0 голосов
/ 09 октября 2011

Я ищу в Интернете ответ, но все ответы относятся к составному идентификатору PK. я хочу, чтобы две карты два столбца типа long для PK. один должен быть сгенерированным идентификатором, а другой - обычным длинным полем.

У меня есть следующее отображение:

  <class name="com.company.MyTable" table="My_Table">
        <id name="id" column="id">            
            <generator class="assigned"/>
        </id>
        <property name="jobId" column="job_id" type="long" index="oes_job_id_idx" />
        <property name="serverId" column="server_id" type="long"/>
     </class>

Я хочу добавить в PK столбец job_id. как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 09 октября 2011

Первичные ключи по определению должны быть уникальными ключами с наименьшим возможным количеством столбцов:

  • Вы не можете иметь несколько первичных ключей
  • вам не следует использовать дополнительный столбец для первичного ключа, если первый столбец уже уникален

На самом деле создание отдельного индекса также не дает никаких преимуществ, поэтому придерживайтесь сгенерированного поля в качестве первичного ключа. Таким образом, Hibernate не поддерживает это, потому что это неправильно.

0 голосов
/ 09 октября 2011

Пожалуйста, посмотрите на эти вопросы, есть полное решение для составных первичных ключей:

Отображение того же отношения класса

А затем

Отображение того же отношения класса - продолжение

Надеюсь, это поможет.

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