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