单表继承插入顺序

时间:2012-11-23 16:02:38

标签: persistence openjpa

当我使用OpenJPA时,我遇到以下情况:

这3个实体:SelectQueryElementSingleSelectQueryElementCompositeQueryElement实现了SINGLE_TABLE继承。

我还拥有ColumnClass实体,其中包含顶级CompositeQueryElement。这些类中的每一个都有EAGER加载和PERSIST / MERGE级联类型。

Class diagram

现在,如果我想模仿这样的结构:

ColumnClass
|   CompositeSelectQueryElement // top-level query element
|   |   SingleSelectQueryElement 
|   |   CompositeSelectQueryElement 
|   |   |   SingleSelectQueryElement 
|   |   SingleSelectQueryElement
|   |   CompositeSelectQueryElement
|   |   |   SingleSelectQueryElement

...我尝试合并ColumnClass对象,我期望插入顺序为“预订”。但是我甚至没有接近那个。

我预计会有以下广告订单:

   ColumnClass
1   |   CompositeSelectQueryElement // TOP-LEVEL
2   |   |   SingleSelectQueryElement
3   |   |   CompositeSelectQueryElement
4   |   |   |   SingleSelectQueryElement
5   |   |   SingleSelectQueryElement
6   |   |   CompositeSelectQueryElement
7   |   |   |   SingleSelectQueryElement

或者至少:

   ColumnClass
1   |   CompositeSelectQueryElement // TOP-LEVEL
2   |   |   SingleSelectQueryElement
3   |   |   CompositeSelectQueryElement
6   |   |   |   SingleSelectQueryElement
4   |   |   SingleSelectQueryElement
5   |   |   CompositeSelectQueryElement
7   |   |   |   SingleSelectQueryElement

但是我得到的是:(请注意,所有Composite的所有Single ColumnClass 1 | CompositeSelectQueryElement // TOP-LEVEL 4 | | SingleSelectQueryElement 2 | | CompositeSelectQueryElement 5 | | | SingleSelectQueryElement 6 | | SingleSelectQueryElement 3 | | CompositeSelectQueryElement 7 | | | SingleSelectQueryElement 之后的所有Single

OpenJPA

{{1}}的顺序也不一致。有时它不是这样,而是随机的。

问题:有没有办法解决这个排序问题,并“建议”{{1}}我希望实现的目标。

我使用的是OpenJPA v2.2。

1 个答案:

答案 0 :(得分:1)

来自This

OpenJPA mailing list消息似乎表明您的解决方案是在您的配置中包含<property name="openjpa.jdbc.UpdateManager" value="operation-order">。希望有所帮助。

相关问题