EclipseLink 2.3.0-2.3.2でも同じ問題ですが、2.3.0からのスタックトレース
バッチフェッチとフェッチ結合が互いにうまく機能しないという問題が発生しました。私は次のようなクエリがあります
select obj from Parent
left join fetch obj.elementCollection
ヒントeclipselink.batch = obj.oneToMany
とeclipselink.batch.type = IN
。
Parent
オブジェクトには、と@ElementCollection
が@OneToMany
あり、@OneToMany
はバッチフェッチされて結合されます@ElementCollection
(代わりに、バッチフェッチは効果がないように見えました)。
以下のエラーで壊れます。バッチタイプをからIN
に変更EXISTS
すると、機能します。
java.lang.NullPointerException
at org.eclipse.persistence.mappings.OneToOneMapping.extractBatchKeyFromRow(OneToOneMapping.java:624)
at org.eclipse.persistence.mappings.ForeignReferenceMapping.extractResultFromBatchQuery(ForeignReferenceMapping.java:524)
at org.eclipse.persistence.internal.indirection.NoIndirectionPolicy.valueFromBatchQuery(NoIndirectionPolicy.java:294)
at org.eclipse.persistence.mappings.ForeignReferenceMapping.batchedValueFromRow(ForeignReferenceMapping.java:215)
何かアイデアがあります-私は何か間違ったことをしていますか、それともこれはバグですか?