假设我有人员和地址类,并且它们在数据库中有不同的表。
一个人可以有一个地址类别。这对我来说是重要的部分。一个人只能拥有一个地址,因为它是子元素,我想将它们保留在数据库中的不同表中。
通常我知道我需要将它们放在同一张表中,但我的场景需要这个。
(而且它看起来像一对多,但我不想只为一个对象创建一个集合)
Person Address
------- -------
id id
Name PersonId
StreetName
和类代码
Person
--------
public virtual long Id{get;set;}
public virtual Address MyAddress {get;set;}
如您所见,当我获得任何 Person 时,我想获得 Person 中的地址属性?但它们位于不同的表中。如何完成此映射?
提前致谢
最佳答案
您无法使用组件映射地址,因为它有自己的表。如果您将所有字段都放在一张表中,则可以使用它。 来自 Hibernate 引用:
The component element maps properties of a child object to columns of the table of a parent class.
您应该使用一对一关系来映射场景中的表和类。
关于.net - 是一对一还是组件?休眠映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541649/