DDD и хранение сложного объекта Value в БД с использованием Hibernate - PullRequest
1 голос
/ 27 июля 2010

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

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

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

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

1 Ответ

1 голос
/ 28 июля 2010

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

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

...