Spring Data 注解(或标准方式)使用 String for MongoDB ObjectId in java 用于手动引用

SpringData annotation(or the standard way) to use String for MongoDB ObjectId in java for manual references

我想知道是否存在在 java 端映射 String 以手动引用 ObjectId 的方法,反之亦然。例如:

User =[{_id: ObjectId('123'),
        pics_id: ObjectId('123'), ...
      }, ... ]

pics_id 是对另一个集合的手动引用。以下代码:

class User{
@Id id;
@Field("pics_id") String picId;
}

将 pics_id 存储为字符串而不是 ObjectId。 有什么方法可以在不使用 ObjectId class 而不是 String 的情况下实现这一点?恕我直言,在 java 代码中使用 ObjectId 会使代码看起来有点奇怪,因为有些 id 是字符串(例如用 @Id 注释的字段)有些是 objectId。谢谢。

随着即将发布的 Spring Data MongoDB 2.2 版本,可以通过 @Field 注释定义所需的目标类型。 类型信息向下传递到转换子系统,以便例如。普通字符串可以存储为代码或 ObjectId。

class User {

  @Id String id; 
  @Field(targetType = FieldType.OBJECT_ID) 
  String picId;
}

请查看 documentation of 2.2.0.RC1 了解更多详情。