Squeak.ru - шаблоны программирования

DDD и хранение сложного объекта Value в базе данных с использованием Hibernate

В примере проекта DDD, написанном Эриком Эвансом (http://dddcommunity.org/examples), есть Cargo class, который является объектом сущности и сопоставляется с таблицей db с помощью спящего режима. Этот объект домена Cargo состоит из нескольких объектов значений, один из которых - Delivery. Этот объект значения доставки довольно сложен, так как в нем около 10 полей. Тем не менее, Delivery - это плоский объект, поэтому он идеально подходит для хранения в db в той же таблице, что и Cargo.

Я следовал примеру Эванса в своем приложении, но столкнулся с некоторыми трудностями и надеюсь, что вы можете мне помочь.

У меня есть объект сущности InvoiceDefinition, который является совокупным корнем. Среди прочего в нем есть поле типа InvoiceLine, которое является объектом значения. InvoiceLine не может существовать изолированно от InvoiceDefinition. Хитрость в том, что InvoiceLine может быть либо листом, либо узлом дерева со списком дочерних значений InvoiceLine. Таким образом, он образует рекурсивную структуру.

Может ли это пройти как допустимый объект значения? Как сохранить такой объект значения в базе данных с помощью спящего режима?


Ответы:


1

Я думаю, что нет ничего плохого, если объект значения является составным.
Могут возникнуть проблемы хотя с неизменностью.

Насколько мне известно, сопоставление композитов с использованием спящего режима немного сложно (вот руководство по nhibernate).

28.07.2010
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...