2010-07-27 62 views
1

在由Eric Evans(http://dddcommunity.org/examples)編寫的示例DDD項目中,有一個Cargo類是一個實體對象,並使用hibernate映射到db表。該貨運域對象由幾個值對象組成,其中之一是Delivery。這個交付價值對象相當複雜,因爲它有10個字段。儘管如此,交付是一個扁平的對象,因此它完美地呈現在與貨物相同的表中的數據庫中。DDD並使用休眠存儲複雜值對象

我在我的應用程序中按照埃文斯的例子,但我到了一些困難,希望你能幫助我。

我有一個InvoiceDefinition實體對象,它是一個聚合根。除此之外,它還有一個InvoiceLine類型的字段,它是一個值對象。 InvoiceLine不能與InvoiceDefinition隔離存在。訣竅是InvoiceLine可以是具有子InvoiceLine值列表的葉或樹節點。所以它形成一個遞歸結構。

這是否可以作爲有效的值對象傳遞? 如何使用hibernate在db中存儲這樣一個值對象?

回答

1

我認爲沒有什麼不好,如果價值對象是composite
雖然可能存在不可變性問題。

據我所知 - 映射使用休眠組合複雜是有點棘手(here's nhibernate教程)。