我在我的WAS 6.1中使用JPA。我試圖執行這一行:我的SystemOut.logJPA數組索引超出範圍
@Entity
@Table(name="some_Table")
@NamedQueries({
@NamedQuery(name="getAllAccountTypeService",
query="SELECT a FROM AccountTypeServiceAssoc a " +
"WHERE a.delete.deletedDate IS NULL ")
.....
Query query = em.createNamedQuery("getAllAccountTypeService");
return query.getResultList();
我得到這個: org.apache.openjpa.persistence.PersistenceException: Array index out of range: 48
哪裏是在上面的代碼中的數組是走出去的範圍是多少?該錯誤出現在這條線#100:
EnumValueHandler.java(這是一個JPA類)
public Object toObjectValue(ValueMapping vm, Object val) {
97 if (val == null)
98 return null;
99 if (_ordinal)
100 return _vals[((Number) val).intValue()];
101 return Enum.valueOf(vm.getType(), (String) val);
102 }
我無法弄清楚什麼是_vals
,什麼是val
謝謝您的幫助。
編輯:謝謝你的答案。該列確實映射到這樣的序數:
@Column(name =「SVC_ID」) @Enumerated(EnumType.ORDINAL) protected ServiceType service;
但是我們在哪裏設置序號的範圍?這使得48範圍之外。
非常感謝。你能否看到我的編輯? – Victor
序號由編譯器爲任何枚舉自動生成,並且無法更改其值。第一個聲明的枚舉實例有0,第二個有1,等等。 –
謝謝。那麼爲什麼48超出範圍? – Victor