在许多部分中,使用所有者类型进行一对多关联

时间:2012-06-08 18:27:20

标签: hibernate

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

  1. 个人,映射到个人表
  2. 公司,已映射到公司表
  3. 地址,映射到地址表
  4. 我想建立个人地址之间以及公司地址,因为个人和公司自然可以拥有零个或多个地址。 我还想在地址表中使用相同的列来表示数据库中的这种关联 - 一列引用所有者实体的ID,另一列表示其类型。所以在SQL中我会做这样的事情来提取id为5的个人的地址:

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

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

    1. 合并使用类似数据的表/列。
    2. 使用更通用的架构来提供域模型的未来扩展,而不需要DDL。
    3. 所以问题是:如何在Hibernate中定义这种关联?我是Hibernate的新手,经过几个小时的挣扎后我找不到办法。

      感谢。

1 个答案:

答案 0 :(得分:0)

使用xml:

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

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