有人可以解释我如何映射与hibernate的一对一关联(使用映射xml文件NOT注释)吗?映射与休眠的一对一关联
这些是规则:
- A菜单可以具有0或1区域相关联。
- 区域属于菜单。 (或者,如果您更容易对其进行建模:一个区域可以有0或1个菜单关联)。
下面是所需的表(我想使用外键):
TABLE MENU:
ID
NAME
FKID_AREA
TABLE AREA:
ID
NAME
FKID_MENU
谢谢!
有人可以解释我如何映射与hibernate的一对一关联(使用映射xml文件NOT注释)吗?映射与休眠的一对一关联
这些是规则:
下面是所需的表(我想使用外键):
TABLE MENU:
ID
NAME
FKID_AREA
TABLE AREA:
ID
NAME
FKID_MENU
谢谢!
您应该从MENU
表中删除FKID_AREA
表,因为它不是必需的(甚至是一个问题,因为它是AREA.FKID_MENU
的重定义)。
对于剩下的,这在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>
你应该从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>
它的工作原理类似于魅力。谢谢!。 (((现在,如果你喜欢挑战,你可以试试这个:http://stackoverflow.com/questions/9702332/tree-modeling-with-hibernate-xml-config-files))) – webmeiker 2012-03-15 10:02:04