持久化分数时数组越界异常
Array out of bounds exception when persisting score
使用 Optaplanner v7.17.0.Final,在保存分数时,出现以下异常:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at org.optaplanner.persistence.jpa.impl.score.AbstractScoreHibernateType.getPropertyValue(AbstractScoreHibernateType.java:108)
我的 PlanningSolution class 包含以下 JPA 描述:
@PlanningScore
@Columns(columns = { @Column(name = "initScore"),
@Column(name = "hardScore"),
@Column(name = "softScore") })
private HardSoftScore score;
这是文档的建议。此外,此 class 上使用了以下注释:
@TypeDef(defaultForType = HardSoftScore.class,
typeClass = HardSoftScoreHibernateType.class) // Hibernate annotation
调试 Optaplanner 代码,在提供的行中,levelNumbers 局部变量仅包含 2 个级别编号(硬和软),而调用是对索引 2.
当然,删除 initScore 列会导致映射异常,因为 HardSoftScoreHibernateType 声明 3.
我是不是漏掉了什么?
OptaPlanner升级到最新版本(v7.25.0.Final)解决了问题
使用 Optaplanner v7.17.0.Final,在保存分数时,出现以下异常:
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at org.optaplanner.persistence.jpa.impl.score.AbstractScoreHibernateType.getPropertyValue(AbstractScoreHibernateType.java:108)
我的 PlanningSolution class 包含以下 JPA 描述:
@PlanningScore
@Columns(columns = { @Column(name = "initScore"),
@Column(name = "hardScore"),
@Column(name = "softScore") })
private HardSoftScore score;
这是文档的建议。此外,此 class 上使用了以下注释:
@TypeDef(defaultForType = HardSoftScore.class,
typeClass = HardSoftScoreHibernateType.class) // Hibernate annotation
调试 Optaplanner 代码,在提供的行中,levelNumbers 局部变量仅包含 2 个级别编号(硬和软),而调用是对索引 2.
当然,删除 initScore 列会导致映射异常,因为 HardSoftScoreHibernateType 声明 3.
我是不是漏掉了什么?
OptaPlanner升级到最新版本(v7.25.0.Final)解决了问题