を使用すると、次のような状況になります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
来ることに注意してください
ColumnClass
1 | CompositeSelectQueryElement // TOP-LEVEL
4 | | SingleSelectQueryElement
2 | | CompositeSelectQueryElement
5 | | | SingleSelectQueryElement
6 | | SingleSelectQueryElement
3 | | CompositeSelectQueryElement
7 | | | SingleSelectQueryElement
s の順序Single
も一貫していません。時々、このようなものではなく、すべてランダムです。
質問:この順序付けの問題を回避しOpenJPA
、達成したいことを「提案」する方法はありますか。
私は OpenJPA v2.2 を使用しています。