【问题标题】:Array out of bounds exception when persisting score保持分数时数组越界异常
【发布时间】:2019-09-05 13:22:53
【问题描述】:

使用 Optaplanner v7.17.0.Final,保存分数时,出现以下异常:

Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
    at org.optaplanner.persistence.jpa.impl.score.AbstractScoreHibernateType.getPropertyValue(AbstractScoreHibernateType.java:108)

我的 PlanningSolution 类包含以下 JPA 描述:

        @PlanningScore
        @Columns(columns = { @Column(name = "initScore"), 
                             @Column(name = "hardScore"), 
                             @Column(name = "softScore") })
        private HardSoftScore score;

这是文档建议的内容。此外,在这个类上使用了以下注解:

@TypeDef(defaultForType = HardSoftScore.class, 
         typeClass = HardSoftScoreHibernateType.class) // Hibernate annotation

调试 Optaplanner 代码,在提供的行中,levelNumbers 局部变量仅包含 2 个级别编号(硬编号和软编号),而调用的是索引 2。

当然,删除 initScore 列会导致映射异常,因为 HardSoftScoreHibernateType 声明了 3。

我错过了什么吗?

【问题讨论】:

  • 这不是 Musa 在夏天在 optaplanner-persistence-jpa 中修复的错误吗?请尝试最新版本 - 让我们知道该版本是否仍然存在。
  • 这正是我在升级时想要解决的问题 :) stackoverflow.com/questions/57806094/…
  • 一旦我能够升级,我会告诉你;)

标签: java optaplanner


【解决方案1】:

通过升级到 OptaPlanner 的最新版本 (v7.25.0.Final) 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 2021-02-14
    • 1970-01-01
    相关资源
    最近更新 更多