2015-12-31 2 views
-1

Привет, я получаю ошибку ниже, пытаясь внести некоторые изменения в мое приложение. Не могли бы вы помочь мне решить то же самое. пытались найти то же самое на онлайн-бланке, ничего не помогло.Неизвестное порядковое значение для класса enum

ошибка Stack:

org.springframework.dao.InvalidDataAccessApiUsageException: Unknown ordinal value for enum class entity.beschikking.BeschikkingStatus$BeschikkingStatusType: 5; nested exception is java.lang.IllegalArgumentException: Unknown ordinal value for enum class entity.beschikking.BeschikkingStatus$BeschikkingStatusType: 5] with root cause 
java.lang.IllegalArgumentException: Unknown ordinal value for enum class entity.beschikking.BeschikkingStatus$BeschikkingStatusType: 5 
at org.hibernate.type.EnumType.nullSafeGet(EnumType.java:112) 

класс:

@org.hibernate.annotations.Cache(usage =CacheConcurrencyStrategy.READ_ONLY) 
@Entity 
@Table(name = "beschikking_statussen", schema = "lgr") 
public class BeschikkingStatus implements Serializable { 

private static final long serialVersionUID = 1L; 
@Id 
@Column(unique = true, insertable = false, updatable = false, nullable = false) 
@Enumerated(EnumType.STRING) 
private BeschikkingStatusType id; 

public BeschikkingStatusType getId() { 
    return id; 
} 

public void setId(BeschikkingStatusType id) { 
    this.id = id; 
} 
public enum BeschikkingStatusType { 
    ONBEKEND, 
    VOORLOPIG, 
    DEFINITIEF, 
    DEFINITIEF_CORRIGEREN, 
    GEARCHIVEERD; 
} 

} 
+0

Что вы изменили? –

ответ

3

Вы пытаетесь получить BeschikkingStatusType: 5, но не существует, потому что перечисление имеет только 5 значений и начинает отсчет с 0.

1

Похоже, что вы удалили элемент из своего enum BeschikkingStatusType во время повторного факторинга, но некоторые из сохраненных данных имеют строки, ссылающиеся на старый v ALUE. Вам необходимо удалить или изменить эти данные вручную, чтобы устранить эту проблему.

0

Код кажется прекрасным, у вас есть существующие данные?

Если да, возможно, имеются данные со значением 5, и именно поэтому вы получаете сообщение об ошибке.

0

Если у вас есть существующие данные с порядковыми номерами перечислений, вы не можете удалить значения или изменить их порядок, вы можете добавлять только новые значения в конце. Если определенное значение больше не нужно использовать, пометьте его @Deprecated в перечислении, но не удаляйте его.

Смежные вопросы