1

Eric Evans ( http://dddcommunity.org/examples ) によって書かれたサンプル DDD プロジェクトには、エンティティ オブジェクトであり、hibernate を使用して db テーブルにマップされる Cargo クラスがあります。この Cargo ドメイン オブジェクトは、いくつかの値オブジェクトで構成され、そのうちの 1 つが Delivery です。この Delivery 値オブジェクトは、10 個のフィールドがあるため非常に複雑です。それにもかかわらず、Delivery はフラットなオブジェクトであるため、Cargo と同じテーブルの db に完全に格納されます。

私は自分のアプリでエヴァンスの例に従いましたが、いくつかの問題に到達したので、あなたが助けてくれることを願っています.

集計ルートである InvoiceDefinition エンティティ オブジェクトがあります。特に、値オブジェクトである InvoiceLine タイプのフィールドがあります。InvoiceLine は、InvoiceDefinition から分離して存在することはできません。秘訣は、InvoiceLine が子 InvoiceLine 値のリストを持つリーフ ノードまたはツリー ノードのいずれかになることです。したがって、再帰構造を形成します。

これは有効な値オブジェクトとして渡すことができますか? 休止状態を使用してそのような値オブジェクトをdbに保存する方法は?

4

1 に答える 1

1

値オブジェクトがコンポジットであれば問題ないと思います。
ただし、不変性に問題がある可能性があります。

私の知る限り、休止状態を使用してコンポジットをマッピングするのは少しトリッキーです (これは、休止状態チュートリアルです)。

于 2010-07-28T15:51:03.367 に答える