如何在Apache OFBiz中定义和使用复合主键

时间:2014-10-21 07:27:29

标签: ofbiz

我创建了一个具有复合主键的实体。

<entity entity-name="XXX" package-name="org.ofbiz.yyy">

<field name="F1" type="id-ne"></field>
<field name="F2" type="id-ne"></field>
<field name="F3" type="id-ne"></field>

<prim-key field="F1"/>
<prim-key field="F2"/>
</entity>

这里的F2就像序列号。 F2可以在F2变化时具有相同的值。

Ex: F1    F2   F3
    abc   1    some text
    abc   2    some text

当我宣布它们为主键时,它应该允许我插入如上所述的条目。但是我得到了主键F1和#39;的重复输入。插入第二个条目时出错。

我在这里和那里搜索了解定义复合主键的替代方法,但我没有找到任何方法。

我已将主键从单键更新为复合键。 请帮我解决这个问题。提前致谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

实际问题是,最初我创建了具有单个主键的表。后来我用复合主键更新了表。

我认为mysql不会更新元信息(或者它存储的关于表的任何内容)。因此,它考虑使用单个主键的表,并抛出重复的主键错误条目。

我已放弃该表并再次创建。现在,它允许我插入如上例所示的值。

我认为在ofbiz entitymodel.xml中,如果我们更新主键组合,我们必须清除表格信息。

谢谢,