Я использую JPA в своем WAS 6.1. Я пытаюсь выполнить эту строку:JPA Индекс массива вне допустимого диапазона
@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();
Я получаю это на мой SystemOut.log: 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
Спасибо за вашу помощь.
EDIT: Благодарим вас за ответ. Колонна действительно отображаются на порядковый так:
@column (имя = "SVC_ID") @Enumerated (EnumType.ORDINAL) защищенного сервис ServiceType;
Но где мы устанавливаем диапазон Ординала? Это делает 48 вне диапазона.
Большое спасибо. Вы можете увидеть мой EDIT? – Victor
Ординал автогенерируется компилятором для любого перечисления, и нет возможности изменить его значение. Первый объявленный экземпляр enum имеет 0, второй - 1 и т. Д. –
Спасибо. Итак, почему 48 из-за пределов? – Victor