我使用时有以下情况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
s,然后再到所有Single
s)
ColumnClass
1 | CompositeSelectQueryElement // TOP-LEVEL
4 | | SingleSelectQueryElement
2 | | CompositeSelectQueryElement
5 | | | SingleSelectQueryElement
6 | | SingleSelectQueryElement
3 | | CompositeSelectQueryElement
7 | | | SingleSelectQueryElement
s 的顺序Single
也不一致。有时它不是这样的,而是随机的。
问题:有没有办法解决这个排序问题并“建议”OpenJPA
我想要实现的目标。
我使用 OpenJPA v2.2。