0

我的应用程序中有几个类:

  1. 个人,映射到个人表
  2. 公司,映射到公司表
  3. 地址,映射到地址表

我想在IndividualAddress之间以及CompanyAddress之间建立持续的关联,因为自然地,个人和公司都可以有零个或多个地址。我还想使用 Address 表中的相同列来表示 DB 中的这种关联——一列指的是所有者实体的 ID,另一列表示其类型。所以在 SQL 中,我会做这样的事情来提取 id 为 5 的个人的地址:

select * from Address where ref_id = 5 and ref_type = 'Individual'

对于那些想知道我为什么这样做的人,我的动机是双重的:

  1. 合并使用相似数据的表/列。
  2. 使用更通用的模式来提供领域模型的未来扩展,而不需要 DDL。

所以问题是:如何在 Hibernate 中定义这种关联?我是 Hibernate 的新手,经过几个小时的努力,我找不到解决方法。

谢谢。

4

1 回答 1

0

使用 xml:

<set name="adresses" where="ref_type = 'Individual'">
  ...
</set>

AFAIK 有一个休眠注释来指定集合属性的 where 子句

于 2012-06-11T08:27:51.263 回答