2013-03-07 3 views
3
DB Table REQUEST: 
{ 
    primary key REQUEST_ID, 
    String REQUEST_DETAILS 
} 

DB Table INVALID_REQUEST_DETAILS{ 
    (foreign key, primary key) fk_req_id references REQUEST.REQUEST_ID, 
    String INVALID_COMMENTS, 
    String APPROVER_NAME 
} 

Таким образом, вы можете увидеть, что есть один ЗАПРОС на один INVALID_REQUEST_DETAILS. По какой-то причине, которую я не понимаю, я слышал, что Hibernate сопоставляет это как отношение «много-к-одному». У меня есть следующий код для моего .hbm.xml файла:Иностранный ключ спящего режима является первичным ключом

<hibernate-mapping> 
    <class name="InvalidRequestDetails" table="INVALID_REQUEST_DETAILS"> 
    <id name="id" column="fk_req_id"> 
    <generator class="foreign"> 
     <param name="property">request</param> 
    </generator> 
    </id> 

    ... (other column mappings omitted) ...  

    <many-to-one name="request" class="Request" unique="true" not-null="true" /> 
</class> 
</hibernate-mapping> 

Пожалуйста, не относятся меня «читать документацию гибернации», если вы не дают какое-то объяснение, она содержит очень редкие объяснения понятий и у меня есть уже прочитал. Проблема, с которой я сталкиваюсь, заключается в том, что мой файл сопоставления, очевидно, неверен, поскольку я не могу вставить какие-либо записи в таблицу.

Вопросы:

  1. Как я могу исправить мой файл .hbm.xml? Зачем?
  2. Если у меня есть логически взаимосвязь «один-к-одному», как я объяснял выше, почему мне нужен тег «много-к-одному»? В чем разница между «много-к-одному» и «один-к-одному» здесь? Когда вы используете это? Будет ли что-нибудь изменяться, если мой внешний ключ НЕ был также первичным ключом?

ответ

4

Не знаете, откуда вы получили информацию, но можете определенно моделировать это как индивидуально. Here's пример того, как.

<hibernate-mapping> 
    <class name="InvalidRequestDetails" table="INVALID_REQUEST_DETAILS"> 
    <id name="id" column="fk_req_id"> 
    <generator class="foreign"> 
     <param name="property">request</param> 
    </generator> 
    </id> 

    ... (other column mappings omitted) ...  

    <one-to-one name="request" class="Request" constrained="true" /> 
</class> 
</hibernate-mapping> 
Смежные вопросы