Я нашел рабочее решение.Как я упоминал ранее, мне не разрешено изменять сущности Транспортное средство и Оружие и соответствующие файлы сопоставления.Ни одна аннотация не допускается.
Я нашел этот ответ по предложению Googling Ben выше, что привело меня к следующим статьям: http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example/ и http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-one-to-one-1.html
Предложение от mkyong хорошо, но мне не понравилосьидея сохранения и назначения первичных ключей в обоих направлениях, так как у меня нет возможности редактировать файлы сопоставления из классов Vehicle и Weapon.См. Комментарий «главная трудность отношения один-к-одному заключается в том, что обоим назначен один и тот же первичный ключ»
Предложение от vaannila несколько интригует.Он выполняет отношение один-к-одному, но не требует никаких изменений в других файлах сопоставления.
Сначала я объявил свой VehicleWeapon.hbm.xml следующим образом:
<hibernate-mapping package="com.armory">
<id name="id" type="long" >
<column name="id" />
<generator class="native" />
</id>
<many-to-one name="vehicle" class="Vehicle"
column="vehicle_column" cascade="all" unique="true" />
<many-to-one name="weapon" class="Weapon"
column="weapon_column" cascade="all" unique="true" />
Затем я объявил свой стандартный класс POWO для VehicleWeapon.И соответствующая реализация DAO.
Я запускаю пару тестов Junit / Spring.Я смог сохранить, удалить, восстановить без проблем.Все действия каскадируются с соответствующими таблицами оружия и транспортных средств.
Единственным недостатком этого метода является то, что Hibernate создаст третью таблицу vehicle_weapon, которая содержит идентификатор для таблиц транспортных средств и оружия соответственно в качестве ссылки.
Хорошо, что я не редактировал существующие сущности или файлы сопоставления.Я создал новый и создаю новый объект из двух таблиц.
Мне все еще нравится иметь возможность сопоставлять непосредственно со свойствами Оружия и Транспортного средства вместо отображения непосредственно в сущности Оружия и Транспортного средства.Но сейчас я думаю, что это приемлемо.