【问题标题】:Unknown ordinal value for enum class枚举类的未知序数值
【发布时间】:2015-12-31 11:13:21
【问题描述】:

您好,在尝试对我的应用程序进行一些更改时出现以下错误。 你能帮我解决同样的问题吗?试图在网上找到相同的但没有任何帮助。

错误堆栈:

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;
}

}

【问题讨论】:

  • 你改变了什么?

标签: java hibernate enums


【解决方案1】:

您正在尝试获取 BeschikkingStatusType: 5,但这不存在,因为枚举只有 5 个值,并且从 0 开始计数。

【讨论】:

    【解决方案2】:

    您似乎在重构期间从enum BeschikkingStatusType 中删除了一个项目,但一些保存的数据包含引用旧值的行。您需要手动删除或更改此数据才能解决此问题。

    【讨论】:

      【解决方案3】:

      代码看起来不错,你有现有数据吗?

      如果是,则可能有一些值为 5 的数据,这就是您收到错误的原因。

      【讨论】:

        【解决方案4】:

        当您有带有枚举序数的现有数据时,您不能删除值或更改它们的顺序,您只能在末尾添加新值。如果某个值不再需要使用,请在枚举中将其标记为@Deprecated 但不要将其删除。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-28
          • 1970-01-01
          • 2011-03-24
          • 1970-01-01
          • 1970-01-01
          • 2013-07-03
          相关资源
          最近更新 更多