当我使用OpenJPA
时,我遇到以下情况:
这3个实体:SelectQueryElement
,SingleSelectQueryElement
,CompositeQueryElement
实现了SINGLE_TABLE
继承。
我还拥有ColumnClass
实体,其中包含顶级CompositeQueryElement
。这些类中的每一个都有EAGER
加载和PERSIST
/ MERGE
级联类型。
现在,如果我想模仿这样的结构:
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。
答案 0 :(得分:1)
OpenJPA mailing list消息似乎表明您的解决方案是在您的配置中包含<property name="openjpa.jdbc.UpdateManager" value="operation-order">
。希望有所帮助。