При использовании ORM, как безопасно отправлять загруженные объекты по уровням - PullRequest
1 голос
/ 18 сентября 2008

Когда система имеет N уровней и когда вы используете ORM, как вы отправляете загруженные объекты по уровням?

Используете ли вы DTO?

Когда DTO не используются и сущности отправляются напрямую, как вы защищаете снова от неинициализированных лениво загруженных ошибок отношений?

Примечание: это не "должны ли использоваться N ярусов?" вопрос. Я предполагаю, что система уже имеет N уровней.

Ответы [ 2 ]

1 голос
/ 18 сентября 2008

Ну, я не знаю, есть ли лучший способ, но когда мы используем Hibernate, мы просто отключаем ленивую загрузку, чтобы она загружала все. Это, очевидно, стоит дороже, но я не был уверен, как избавиться от ленивых методов загрузки, которые создаст Hibernate.

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

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

Могут быть и лучшие способы ... но я учусь :) 1007 *

0 голосов
/ 20 сентября 2008

Я просто пытаюсь найти свой путь с ОРМ.

Это привлекательная концепция. Как и вы, я не хочу, чтобы другие уровни приложения знали, что ORM существует.

Сейчас я смотрю на использование интерфейсов, которые я проектирую, и на использование частичных классов (вещь на C # /. Net, без частичных классов, я думаю, я бы написал обертку), чтобы добавить реализацию интерфейса к типам которые генерируются ORM.

Что касается отложенной загрузки / отложенного выполнения, это также должно быть невидимым для приложения. Это хорошая услуга для ORM, и я рад, что это так, но мое приложение не должно знать об этом или заботиться о нем. Поэтому, если ORM не скрывает этого от вас, я бы снова посмотрел на оболочку, которая позаботилась об этом, чтобы приложение не нуждалось в информации или заботе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...