2012-03-15 17 views
0

誰かが、ハイパーリンクと1対0の関連付けをどのようにマッピングするかを説明できますか?(マッピングXMLファイルではなくアノテーションを使用して)ハイバネートと1対0の関連付けをマップする

これらはルールです:

  • メニューは、関連する0または1エリアを持つことができます。
  • エリアはメニューに属します。 (または、あなたがモデル化する方が簡単な場合は、エリアに0または1のメニューを関連付けることができます)。ここで

希望TABLES(私は外部キーを使用します)、次のとおりです。

TABLE MENU: 
ID 
NAME 
FKID_AREA 

TABLE AREA: 
ID 
NAME 
FKID_MENU 

ありがとう!それが必要ではないので(とさえ問題であり、それはAREA.FKID_MENUでredendantだから、)

答えて

0

あなたは、MENUテーブルからFKID_AREAを削除する必要があります。残りについては

が、これはHibernate documentation on bidirectional one-to-one association mappingsで説明されています

<class name="Area"> 
    <id name="id" column="ID"> 
     <generator class="native"/> 
    </id> 
    <many-to-one name="menu" 
     column="FKID_MENU" 
     unique="true" 
     not-null="false"/> 
</class> 

<class name="Menu"> 
    <id name="id" column="ID"> 
     <generator class="native"/> 
    </id> 
    <one-to-one name="area" 
     property-ref="menu"/> 
</class> 
+0

これは魅力的です。ありがとうございました!。 ((今、あなたがチャレンジを楽しむなら、これを試してみてください:http://stackoverflow.com/questions/9702332/tree-modeling-with-hibernate-xml-config-files))) – webmeiker

0

あなたはAREAテーブルからFKID_MENUを削除する必要があります。あなたの説明によると、あなたのhbmマッピングは以下のようになります

<class name="Menu"> 
    <id name="id" column="ID"> 
     <generator class="native"/> 
    </id> 
    <property name="name" cloumn="name"/> 
    <many-to-one name="area" column="FKID_AREA" class="Area"/> 
</class> 

<class name="Area"> 
    <id name="id" column="ID"> 
     <generator class="native"/> 
    </id> 
    <property name="name" cloumn="name"/> 
</class> 
関連する問題