DDD - комплексное картирование ORM - PullRequest
3 голосов
/ 26 августа 2011

Я пишу приложение Java DDD, в котором модель базы данных уже разработана и реализована.Проблема в том, что мои доменные объекты отличаются от модели базы данных, а сопоставление ORM слишком сложное.Вот вопрос: что я могу с этим сделать?DTO?Как я могу связать DTO с репозиториями и объектами домена, если они видят интерфейсы репозиториев?

Спасибо!

Ответы [ 2 ]

1 голос
/ 11 октября 2015

Многие ORM не имеют достаточно хороших картографических возможностей. Более того, они вводят концептуальные ярлыки, которые могут помешать решению ориентироваться на бизнес. Ваш случай - хороший пример.

В вашем случае я бы, вероятно, оспорил использование ORM. Я бы реализовал бизнес-модель, не пытаясь повторно использовать существующую модель базы данных с POCO, доменными службами ... Для обеспечения устойчивости, учитывая тот факт, что у вас есть две дифференцирующие модели, я бы управлял кодом с внедрением зависимости модели домена в Уровень доступа к данным, чтобы предотвратить загрязнение модели хранилища в вашем домене, а затем в DAL реализовать собственное сопоставление с процедурным кодом и микро-ORM (или ORM, если модель хранилища сложна). Это означает больше работы, но вы получите намного лучший домен.

1 голос
/ 01 сентября 2011

Hibernate имеет очень хорошую поддержку устаревших баз данных. Это выходит далеко за рамки отображения таблицы = таблица. Сложность, на которую вы ссылаетесь, не исчезнет, ​​если вы используете дополнительный слой DTO, он просто будет распределен по еще одному слою. Может быть проще просто содержать его в файлах сопоставления. Возможно, имеет смысл немного изменить модель к схеме базы данных, но только в том случае, если вы увидите значительные преимущества с точки зрения уменьшения общей сложности. И затем модель рефакторинга домена вместе с база данных .

...