我尝试在地图中以特定顺序存储“模块”数据。我使用 TreeMap 来实现这一点。当我读取数据时,我得到的顺序完全错误。它以键值 9 开始并以 0 结束。 ??? JPA 是否会做其他事情,然后将值“放入”TreeMap 中?
@OneToMany(
mappedBy="prditem",
fetch=FetchType.LAZY,
cascade=CascadeType.ALL,
orphanRemoval=true,
targetEntity=PubModule.class
)
@JoinColumn(name="prditmID")
@MapKey(name="order")
private Map<Integer, PubModule> modules = new PubModulesMap();
public class PubModulesMap extends TreeMap<Integer,PubModule> {
@Override
public PubModule put(Integer key, PubModule value) {
PubModule old = (PubModule)this.get(key);
if (old!=null) {
old.setPrditem(value.getPrditem());
....
}
Iterator <PubModule> it = list.values().iterator();
while (it.hasNext()) {
PubModule pm = it.next();
System.out.println(pm.getOrder());
}
9 8 7 6 5 4 3 2 1 0