这里是映射文件:
<hibernate-mapping>
<class name="com.hibernate.BusinessCard" table="BUSINESSCARD">
<id length="4" name="id" type="int">
<column length="4" name="ID"/>
<generator class="increment"/>
</id>
<property generated="never" lazy="false" name="name" type="java.lang.String">
<column length="50" name="NAME"/>
</property>
<property generated="never" lazy="false" name="description" type="java.lang.String">
<column length="250" name="DESCRIPTION"/>
</property>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.hibernate.BusinessGroup" table="BUSINESSGROUP">
<id name="id" type="int">
<column name="ID" length="4"/>
<generator class="increment" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="25"/>
</property>
<property name="description" type="java.lang.String">
<column name="DESCRIPTION" length="250"/>
</property>
</class>
</hibernate-mapping>
<hibernate-mapping>
<class name="com.hibernate.BusinessContact" table="BUSINESSCONTACT">
<id name="id" type="int">
<column name="ID" length="4"/>
<generator class="increment" />
</id>
<property name="businessId" type="java.lang.Integer">
<column name="BUSINESSID" length="4"/>
</property>
<property name="groupId" type="java.lang.Integer">
<column name="GROUPID" length="4"/>
</property>
</class>
</hibernate-mapping>
因此,在BUSINESSCONTACT表上,我尝试在businesscard和businessgroup之间进行一对多映射。不幸的是,尽管在网上搜索解决方案我无法做到这一点。任何人都可以帮我解决这个问题吗?
THX ..
答案 0 :(得分:2)
不要在网上搜索。请改为阅读reference documentation。
这是the section showing an example of a one-to-many unidirectional association。
您的映射没有意义。如果您想在BusinessGroup和BusinessCard之间建立一对多关联,那么BusinessGroup类应该有一组BusinessCards。
不应该有BusinessContact类,因为BUSINESSCONTACT表只是一个连接表,而不是一个实体。它唯一的用途是保持其他实体之间的关联,因此它完全由协会管理。