2010-07-27 8 views
1

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

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

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

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

ответ

1

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

Насколько я знаю - сопоставление композитов с использованием hibernate немного сложнее (here's учебник для nhibernate).

Смежные вопросы