C# 如何从Hibernate/NHibernate中的值对象引用实体?
从: 值对象甚至可以引用实体。例如,如果我问一个在线地图服务,从旧金山到洛杉矶的风景驱动路线,它可能会得到一个路线对象连接L.A.和旧金山通过太平洋海岸公路。该路线对象将是一个值,即使它引用的三个对象(两个城市和一条公路)都是实体 在Hibernate中,如果我有一个值对象,我可以将其映射为组件。如果我想引用该组件的实体,该怎么办 例如:C# 如何从Hibernate/NHibernate中的值对象引用实体?,c#,java,hibernate,nhibernate,domain-driven-design,C#,Java,Hibernate,Nhibernate,Domain Driven Design,从: 值对象甚至可以引用实体。例如,如果我问一个在线地图服务,从旧金山到洛杉矶的风景驱动路线,它可能会得到一个路线对象连接L.A.和旧金山通过太平洋海岸公路。该路线对象将是一个值,即使它引用的三个对象(两个城市和一条公路)都是实体 在Hibernate中,如果我有一个值对象,我可以将其映射为组件。如果我想引用该组件的实体,该怎么办 例如: 我有一张用户表 每个用户可以有许多地址 我创建了一个地址表,但我将地址视为域中的值对象 每个地址都有一个类型(工作地址、家庭地址等) 我创建一个地址类型表
- 我有一张用户表
- 每个用户可以有许多地址
- 我创建了一个地址表,但我将地址视为域中的值对象
- 每个地址都有一个类型(工作地址、家庭地址等)
- 我创建一个地址类型表作为查找,并将其视为域中的一个实体
- 地址应具有对其类型的引用
........
注意上面代码中的示例属性
和多对一
。要创建对另一个实体的引用,只需在组件内部使用多对一
,就像在组件外部一样。请参阅
元素将子对象的属性映射到父类表的列。组件可以依次声明自己的属性、组件或集合。请参阅下面的“组件”
........
注意上面代码中的示例
属性
和多对一
。要创建对另一个实体的引用,只需在组件内部使用many-To-one
,就像在组件外部一样。在组件中声明一对一关系?为什么地址类型是实体?你在乎它的身份吗?@JefClaes我受到了这样的影响。您认为它最好建模为VO吗?在组件中声明一对一关系?为什么地址类型是实体?你在乎它的身份吗?@JefClaes我受到了这样的影响。你认为用VO建模更好吗?
<component> <!-- NOTE: I'm omitting the attributes. See docs for details on these. -->
<property ...../>
<many-to-one .... />
........
</component>