我有两个类Employee和Application。 员工有一个employeeId(PK)。应用程序有两个字段employeeId(fk)managerId(fk)。 employeeId和managerId都应该引用Employee类的employeeId。所以我必须在各自的hbm.xml文件以下映射:Hibernate映射:实体映射中的重复列
Employee.hbm.xml
<hibernate-mapping package="com.quinnox.resignation2.0.model">
<class name="Employee" table="Employee">
<id name="employeeId" type="int">
<generator class="native"></generator>
</id>
</class>
<hibernate-mapping>
Application.hbm.xml
<hibernate-mapping package="com.quinnox.resignation2.0.model">
<class name="Application" table="Application">
<id name="applicationId" type="int">
<generator class="native"></generator>
</id>
<many-to-one name="empId" class="Employee" column="employeeId" />
<many-to-one name="managerId" class="Employee"
column="employeeId" />
</class></hibernate-mapping>
我也创建相应的POJO。当我尝试运行应用程序我碰到下面的错误
org.hibernate.MappingException: Repeated column in mapping for entity: com.quinnox.resignation2.0.model.Application column: employeeId (should be mapped with insert="false" update="false")
我无法设置插入=“假”或更新=“假”和两个外键应该映射到Employee表的雇员。我该怎么办?
为什么您的设计需要映射到一个外键,它会更好,两列,只有一个外键(适当虽然命名) –
@SajanChandran不,我需要引用它到employeeId本身,因为经理本身也是员工 –