java - 在 Spring Data MongoDB 映射中强制属性顺序

标签 java spring mongodb spring-data

我有一个 Location 对象,当它们持久化到 mongodb 时我需要强制属性的顺序,但我不太幸运地知道如何去做。 Location 类类似于:

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

当它持久化到 mongo 中时,县总是在纬度和经度之前。这是一个问题,因为我正在尝试在其上放置一个地理索引,并且前两个属性必须是纬度/经度。

我试过:

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

当 location 对象被序列化为 xml 到我的客户端而不是数据库时,这有效。似乎 spring 数据或一些 mongo 映射器总是按字母顺序做事。

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

最佳答案

您可以使用@Field 注释的顺序属性来强制字段顺序。所以,如果你有:

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

   @Field(order = 2)
   float lon;

   @Field(order = 3)
   County county;
}

字段按以下顺序保存:纬度、经度、县。

关于java - 在 Spring Data MongoDB 映射中强制属性顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6294417/

相关文章:

java - Windows 10 中无法使用透明 JFrame 背景吗?

java - Spring Boot应用程序无法启动嵌入式容器

java - 无法正确应用其余 Controller junit 测试

javascript - 在 Mongoose 中查找嵌入对象时未定义

java - 在每个具体类使用 Hibernate 继承表时创建别名时出错

java - Java 打印中的方向没有改变

java - 解码 Java 时出现异常

java - Hibernate 创建名称转义的表

parallel-processing - MongoDB:在没有并行性的情况下使用 MapReduce 有什么意义?

mongodb - 该字段必须是累加器对象。 (该字段是日期字符串。)