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