У меня есть иерархия хранения EMF: Дом содержит список Комната s, представленный с использованием файла ecore.Econtainer null при загрузке содержимого EMF из базы данных с использованием Hibernate
Перед сохраняющиеся, когда я сначала создать свой дом и заселить его номер, в значение eContainer для номера объекта правильно показать, содержащий дом. Затем я использую Hibernate (не задействованный Teneo), чтобы сохранить дом (который каскад - сохраняет комнаты).
Когда я перезагружаю объект Дома, я получаю ссылки на все Комнаты. Тем не менее, eContainer значение для комнаты в настоящее время null. Это актуально, потому что я использую EcoreUtil.delete (ванная), чтобы удалить комнату из ее содержащего дома, и которая использует EObject.eContainer().
Соответствующие Hibernate Mapping:
<class name="House" table="house" lazy="false">
<bag name="rooms" lazy="true" cascade="save-update, delete">
<key update="true">
<column name="house_id" unique="false"/>
</key>
<one-to-many class="Room"/>
</bag>
</class>
<class name="Room" table="room" lazy="false">
</class>
Что я должен сделать, чтобы удалить объекты EMF? Должен ли я вызвать что-то другое, кроме EcoreUtil.delete (obj)? Должен ли я вручную добавлять ссылки eContainer при загрузке? Должен ли я изменить отображение спящего режима?
В чем причина не использования Teneo? Это мост между EMF и Hibernate ... –
Основная причина (возможно, не очень хорошая) заключается в том, что мы использовали Hibernate с самого начала и не знаем, как трудно было бы перейти на Teneo. – joe