我的谷歌福使我失败了。我正在做一个小型数据库应用程序,它从文件中读取一些数据以及当前存储在实体地图中的一些元数据。我受够了它总是以随机顺序显示。

那么我可以通过某种方式将LinkedHashMap或@OrderColumn与Maps一起使用来保留插入顺序吗?

@Entity
public class MooData
{
    @OrderColumn
    @ElementCollection
    private List<BigDecimal> data;

    @ElementCollection
    private Map<String, String> properties;
}

最佳答案

在JPA 2.0规范中,我找不到任何证据表明@OrderColumn注释应该适用于Map。引用规格:

11.1.39 OrderColumn注释

OrderColumn注释指定一个
用于维护
列表的持久顺序。的
持续性提供者负责
为了维持秩序
检索并在数据库中。的
持续性提供者负责
用于更新订单
刷新到数据库以反映
任何插入,删除或重新排序
影响列表。 OrderColumn 注释可以在
一对多或多对多
关系或元素
采集。 OrderColumn 注释在的侧面指定
引用该关系的关系
将要订购的集合。的
订单列不可见
实体或可嵌入实体的状态
类。

如果要保留订单,请使用List(在您的情况下为Embeddable)。使用Map,可以通过键访问值。

10-01 05:43