Hibernate @OrderColumn在更新后在集合中导致空元素
我试图维持双向映射集合的顺序。映射如下:Hibernate @OrderColumn在更新后在集合中导致空元素,hibernate,spring-data,Hibernate,Spring Data,我试图维持双向映射集合的顺序。映射如下: @Entity public class Plate { ... @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "plate") @OrderColumn private List<W> wells = new ArrayList<>(); ... } 我第一次保存图版
@Entity
public class Plate {
...
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "plate")
@OrderColumn
private List<W> wells = new ArrayList<>();
...
}
我第一次保存图版
实体时,96个井的集合
s所有内容都正确保存,并且顺序
列从0开始填充到95。一切都好
在随后更新到板块
实体之后(没有真正更改任何井
)并保存后,我看到对DB中的顺序
列进行了一系列更新,导致96个元素从97开始索引到193
因此,在下一次加载此类集合后,列表
包含97个null
元素,后面是预期的96个实元素(该列表现在总共有193个元素)
问题是,在调试过程中,bug(?)不会暴露出来,因为可能在调试过程中加载了一些惰性集合,因此很难判断根本原因
我知道这可能是由AbstractCollectionPersister
及其baseIndex
属性驱动的,但我不知道什么会导致Hibernate重新索引集合,并从97开始,而不是从0开始
**编辑:*环境
冬眠5.4.18.1决赛
Spring boot 2.2.9您使用的是什么hibernate版本?使用env infoIt更新了问题,看起来与问题相同。
@Entity
public class Well {
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "plate_id")
private Plate plate;
}