0

我的对象模型包含 2 个感兴趣的对象,一个 RuleGroup 和一个 Rule

我的 RuleGroup 对象包含一组规则。

因此,我有一个名为 RULE_GRP_MEMBER 的交叉引用表,它在 RULE_GRP 表和 RULE 表之间进行映射,以指定哪些规则属于某个 RuleGroup。

我的 RuleGroup 映射文件如下,这很好用,没有问题。

<class name="a.b.c.d.RuleGroup" table="RULE_GRP">
    <id name="ruleGroupID" column="RULE_GRP_ID">
        <generator class="increment"/>
    </id>
    <set name="rules" lazy="true" cascade="save-update" table="RULE_GRP_MEMBER">
        <key column="RULE_GRP_ID" not-null="false"/>
        <!-- Unique set to true makes this a one to many relationship -->
        <many-to-many unique="true" column="RULE_ID" class="a.b.c.d.Rule"/>
    </set>
....
</class>

我的规则映射文件不包含对 RuleGroup 对象的任何引用。

问题是我们现在在 RULE_GRP_MEMBER 表中引入了一个新的非空字段 RULE_SEQ。因此,当向 RuleGroup 添加新规则时,会将新行添加到 RULE_GRP_MEMBER 表中。

如何将此 RULE_SEQ 字段映射到我的对象?理想情况下,我想将它映射到我的 Rule 对象,但我不确定我什至应该使用什么 Hibernate 概念。

谢谢

4

1 回答 1

1

在这种情况下,您可能需要为包含连接表的列的连接表创建 POJO。这将有一个复合键 RULE_GRP_ID、RULE_ID。新的列 seq 应该在这个新的 HBM 中理想地定义,因为它属于连接表。

然后,您可以从 RULE、RUL_GRP 表中为此添加集合映射。

于 2012-04-17T06:37:33.757 回答