У меня достаточно богатая модель данных, которую мне нужно отобразить, структура примерно такая:Базовый класс, у которого есть несколько вариантов, которые наследуются от него.Некоторые из вариантов могут также иметь подклассы.Каждый класс может содержать коллекции (вероятно, я буду использовать списки, так как мне важен порядок).Объекты в списках могут также содержать списки других объектов.
Семантически объекты, содержащиеся в списках, «принадлежат» объекту, который их содержит, т.е. они не существуют в идеале от родителей и не являются общимимежду несколькими родителями.Я предполагаю, что естественным отображением является использование коллекций составных элементов, но однозначные ссылки с каскадными операциями сохранения также кажутся жизнеспособными.
Одна вещь, которая мне не нравится в коллекциях составных элементов, эточто они должны быть определены в том же файле сопоставления, что и их родительские объекты.Аналогично, подклассы также должны быть определены в том же файле, что и их базовые классы, так что все они попадают в один и тот же файл отображения.
В hibernate есть возможность использовать объекты DTD для включения xml из других файлов, а использование аннотаций для сопоставлений - это еще один вариант.
Однако мне также нужно иметь реализацию .Net, и HHibernate не поддерживает ссылки на сущности DTD, и в прошлый раз, когда я смотрел, аннотации для NHibernate не были достаточно зрелыми, чтобы поддерживать сложное отображение.
Мне интересноПо опыту, другие имели отображение этого типа модели данных в Hibernate и NHibernate и любые предложения по передовому опыту.