【问题标题】:Spring Data MongoDb - Manual Reference ObjectId to StringSpring Data MongoDb - 手动参考 ObjectId 到字符串
【发布时间】:2016-03-08 14:00:24
【问题描述】:

假设我有一个用户类,其中手动引用了客户文档:

public class User(){
    @Id
    public String id;
    public String name;
    public String customerId;
}

我希望将 id 和 customerId 都存储为 mongo 中的 ObjectId。

保存用户文档时,“id”会转换为 ObjectId,但是,customerId 会保存为字符串。我可以拥有 ObjectId 类型的 customerId,但我宁愿将 POJO 作为字符串,并在保存/查询时让 customerId 自动转换为 ObjectId。似乎没有任何内置注释的行为类似于@Id,但可用于手动引用。我将如何创建一个,还是有更好的解决方案?我已经阅读了上面的转换器,但我不想将整个 POJO 重新映射到 DBObject。

任何建议将不胜感激。

【问题讨论】:

    标签: mongodb spring-data spring-data-mongodb


    【解决方案1】:

    当您获得客户数据时,您必须自己创建 objectId。

    Db.Customer.find({"_id" : new ObjectId("$valueFromUserTable")});

    所以在 Spring Java 中你会:

    ObjectId objId = new ObjectId("$valueFromUserTable");
    Query query = new Query(Criteria.where("_id").is(objId));
    Customer customer = super.mongoOps.find(query, Customer.class);
    

    【讨论】:

      猜你喜欢
      • 2018-06-09
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      相关资源
      最近更新 更多