我有一个Location对象,当它们持久化到mongodb时,我需要强制属性的顺序,但是我没有太多运气来弄清楚如何做到这一点。 Location类看起来像:

Location {
   float lat;
   float lon;
   County county;
}

当它坚持到蒙哥时,县总是在经纬度之前。这是一个问题,因为我试图在其上放置地理索引,并且前两个属性必须为经/纬度。

我努力了:
@XmlRootElement(name="location")
@XmlType(propOrder={"latitude", "longitude", "county"})
Location {
   float lat;
   float lon;
   County county;
}

当位置对象序列化为XML到我的客户端而不是DB时,该方法起作用。似乎spring数据或某些mongo mapper总是按字母顺序进行操作。

有谁知道如何强制将订单属性保留到mongo中?
谢谢!

最佳答案

您可以使用@Field批注的order属性来强制字段顺序。因此,如果您有:

Location {
   @Field(order = 1)
   float lat;

   @Field(order = 2)
   float lon;

   @Field(order = 3)
   County county;
}

字段按以下顺序保留:lat,lon,county。

09-28 09:44