2013-02-02 52 views
0

的EclipseLink 2.3.0 - 2.3.2上,但堆棧跟蹤同一問題從2.3.0的EclipseLink誤差批量抓取 - NullPointerException異常

運行到一個問題,即批量抓取並獲取加入不與對方打很好。我有一個像

select obj from Parent 
    left join fetch obj.elementCollection 

與提示eclipselink.batch = obj.oneToManyeclipselink.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) 

任何想法 - 我做錯了什麼或這是一個錯誤?

+0

快速查看eclipselink源代碼後:它似乎是eclipselink中的一個錯誤。 – ben75

回答

1

請嘗試2.4版本,並記錄錯誤,如果錯誤仍然發生。

您應該也可以批量獲取元素集合。如果你不能,請用測試用例記錄一個錯誤。

+0

當我將「@ ElementCollection」的「fetch join」與「@ OneToMany」的批量獲取與「IN」混合在一起時,我* *在2.4.x下獲得了相同的錯誤。不過,批量提取'@ ElementCollection'現在可以與「IN」一起使用,所以我可以批量提取兩者。我仍然應該記錄一個錯誤,或者我不應該能夠像這樣混合批量提取和獲取聯接? – wrschneider

+0

它看起來像我可以用2.3.2批量獲取@ElementCollection,以及我刪除「獲取連接」。所以真正的問題是無法混合使用fetch-join和batch-fetch,或者混合批量提取策略。 – wrschneider