【发布时间】:2012-02-04 22:05:01
【问题描述】:
我正在尝试使用 spring、hibernate 以及第一次遵循 DDD 创建一个电子商务网站。
目前的情况是这样的。我正在考虑将对象 USER 作为聚合根,它有一个地址列表(以前的..和当前的),并且每个地址都关联一个国家(isocode,名称)..
我假设 Address 和 Country 是 Value Objects.. 与用户严格相关。
在@Entity 类 User 中有: @ElementCollection @CollectionTable(name = "addresses", joinColumns = @JoinColumn(name = "address_id")) @OrderColumn(name="user_id") 私有列表地址;
在 @Embeddable 类 Address 中,我想为 Country 创建一个单独的表,我可以在初始化期间填充该表,并且 Address 只有一个外键。
我尝试了@Embeddable Country 和地址 @嵌入式 私人国家/地区
还有@SecondaryTable .. 但这只能在@Entity 类中使用。所以问题是Country 的字段保存在地址表中。
我应该为 Country 创建一个 @Entity 吗?或者还有其他方法来映射这些类?
谢谢
【问题讨论】:
-
我通常不喜欢做绝对的陈述,但在这种情况下我会破例.... 你绝对,绝对不应该让数据库架构有任何影响域模型的设计。 DDD 101。
标签: hibernate domain-driven-design street-address country