2012-04-16 1 views
0

私のオブジェクトモデルは、関心の2つのオブジェクトが含まれ、RuleGroupとルール休止状態:マッピングコレクションクロスリファレンス表の「その他」の欄

マイRuleGroupオブジェクトは、ルールのセットが含まれています。

したがって、RULE_GRPテーブルとRULEテーブルの間をマップして、どのルールがRuleGroupに属しているかを指定するRULE_GRP_MEMBERという相互参照テーブルがあります。

My RuleGroupマッピングファイルは次のとおりですが、問題なく正常に動作します。

<class name="a.b.c.d.RuleGroup" table="RULE_GRP"> 
    <id name="ruleGroupID" column="RULE_GRP_ID"> 
     <generator class="increment"/> 
    </id> 
    <set name="rules" lazy="true" cascade="save-update" table="RULE_GRP_MEMBER"> 
     <key column="RULE_GRP_ID" not-null="false"/> 
     <!-- Unique set to true makes this a one to many relationship --> 
     <many-to-many unique="true" column="RULE_ID" class="a.b.c.d.Rule"/> 
    </set> 
.... 
</class> 

マイルールマッピングファイルには、RuleGroupオブジェクトへの参照が含まれていません。

問題は、新しいNULLでないフィールドRULE_SEQをRULE_GRP_MEMBERテーブルに導入することです。したがって、新しいルールがRuleGroupに追加されると、新しい行がRULE_GRP_MEMBERテーブルに追加されます。

このRULE_SEQフィールドをオブジェクトにマッピングするにはどうすればよいですか?理想的には、私はそれを私のRuleオブジェクトにマップしたいと思いますが、私は確信していません 私はどんなHibernateコンセプトを使うべきですか?あなたが参加table.Thisが複合キーRULE_GRP_ID、RULE_IDを持っての列を含むテーブルを結合するためのPOJOを作成する必要があります。この場合

おかげ

答えて

1

。新しい列seqは、この新しいHBMが理想的には結合テーブルに属しているため、このHBMで定義する必要があります。

次に、RULE、RUL_GRPテーブルからこれにセットマッピングを追加できます。

+0

はい、これは最終的に取ったアプローチです。簡単な代替手段は見当たりませんでした – DJ180