假设我有一个User类,其中包含对客户文档的手动引用:
public class User(){
@Id
public String id;
public String name;
public String customerId;
}
我想要id和amp; customerId存储为mongo中的ObjectId。
保存用户文档时," id"转换为ObjectId,但customerId将保存为字符串。我可以拥有ObjectId类型的customerId,但我宁愿将POJO作为字符串,并且在保存/查询时让customerId自动转换为ObjectId。似乎没有任何内置注释的行为类似于@Id,但可以用于手动引用。我将如何创建一个,还是有更好的解决方案?我已经阅读了一些转换器,但我不想将整个POJO重新映射到DBObject。
任何建议都将不胜感激。
答案 0 :(得分: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);