【发布时间】: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