Я использую hibernate 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 ...
Похоже, ключевой столбец используется правильноно почему-то я не могу сказать hibernate использовать employee.person_data_id
в качестве внешнего ключа.Я думал, что атрибут foreign-key
предназначен для этой цели, но, возможно, нет.
(я знаю, что могу решить эту проблему, используя отношение many-to-one
, но тогда мне нужно использовать сущность 'PersonData'
в качестве компонента'Employee'
.)