いくつかのメタデータを含む結合テーブルを使用して、2 つのテーブル間の関係をマップする方法を見つけようとしています。つまり、3 つのテーブルはフォームのページを表し、各ページには任意の数の要素 (質問) を含めることができます。何らかの理由で、元の開発者は要素を複数のフォームで使用できると判断しました。これは、ページ上の要素の順序付けに使用される重み列が結合テーブルにあることを意味します。
これを XML でマップするにはどうすればよいでしょうか。(注釈はオプションではありません。)
結合テーブルについては、次のようになると思います。
<class name="com.foo.bar.model.db.ApplicationPageElements"
table="APPLICATION_PAGE_ELEMENTS">
<composite-id name="id" class="com.foo.bar.model.db.ApplicationPageElementsKey">
<key-property name="pageId" column="page_id"/>
<key-property name="elementId" column="element_id"/>
</composite-id>
<property name="weight" type="java.lang.Long">
<column name="WEIGHT" precision="0" />
</property>
</class>
私の本能では、ApplicationPage 側から次のようなことをしたいと思っています。
<set name="applicationElements" table="applicationPageElement">
<key column="page_id"/>
<many-to-many column="element_id" unique="true"
class="com.foo.bar.model.db.ApplicationElements" />
</set>
そして、それが私がすべてのたるんだ顎を取得し、画面を見つめ、すすり泣く場所です。
データベースをマップするために .hbm.xml ファイルを使用しています。また、データベースを変更しないことも決定しました。
これを XML でマップする方法についてのアイデアはありますか?