首页 文章

Spring Data MongoDb - 手动引用ObjectId到String

提问于
浏览
0

假设我有一个User类,其中包含对客户文档的手动引用:

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 .

任何意见,将不胜感激 .

1 回答

  • 0

    当您获得客户数据时,您必须自己创建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);
    

相关问题