我的对象模型包含2个感兴趣的对象,一个RuleGroup和一个规则
我的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概念。
由于
答案 0 :(得分:1)
在这种情况下,您可能需要为连接表创建一个POJO,其中包含连接表的列。这将具有复合键RULE_GRP_ID,RULE_ID。新列seq应理想地在此新HBM中定义,因为它属于连接表。
然后,您可以从RULE,RUL_GRP表中添加集映射。