我正在将休眠3与XML实体定义一起使用。我想将表person_data
的某些列连接到基于表employee
的实体中。问题在于该关系是在employee.person_data_id
到person_data.person_id
上定义的。
<hibernate-mapping package="...">
<class name="Employee" table="employee">
<id name="id" column="id" type="java.lang.Long">
<generator class="identity"/>
</id>
<property ... />
<property ... />
<property ... />
<join table="person_data">
<key column="person_id" foreign-key="person_data_id"/>
<property ... />
</join>
</class>
</hibernate-mapping>
但是生成的SQL语句包含:
... FROM employee JOIN person_data ON employee.id = person_data.person_id ...
看起来像key列已正确使用,但是以某种方式我无法告诉hibernate使用employee.person_data_id
作为外键。我认为属性foreign-key
是用于此目的的,但也许不是。
(我知道我可以通过使用many-to-one
关系来解决此问题,但随后我必须使用实体'PersonData'
作为'Employee'
的组成部分。)