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
}
ご覧のとおり、1 つの INVALID_REQUEST_DETAILS に対して 1 つの REQUEST があります。よくわからない何らかの理由で、Hibernate はこれを多対 1 の関係としてマッピングしていると聞きました。.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 ファイルを修正するにはどうすればよいですか? なんで?
- 上で説明したように論理的に 1 対 1 の関係がある場合、なぜ多対 1 のタグが必要なのですか? ここでの多対 1 と 1 対 1 の実際の違いは何ですか? いつどれを使いますか?外部キーが主キーでもなかった場合、何かが変わりますか?