如何防止Spring Data MongoDB将id字段映射为对象id?

时间:2017-06-22 16:33:39

标签: java spring spring-boot spring-data-mongodb

我已经建立了自己的机制来为我的域对象分配身份,因此在持久化时,跟踪MongoDB分配给他们的东西真的没什么价值。但是,我为我的域类id命名了标识字段,因为它简洁易懂。问题是,according to the documentation,Spring会自动将此字段映射到MongoDB的已分配ObjectID。如何为了解决这个问题而无需重命名我的id字段或定义用@Id注释的自定义标识字段,如何防止这种情况发生呢?

2 个答案:

答案 0 :(得分:1)

使用@MongoId代替@Id

@MongoId(targetType = FieldType.STRING)
protected String id;

即使“ shape”是ObjectId,它也会存储String

答案 1 :(得分:0)

好吧,恐怕你不能用Spring数据做到这一点。 Mongodb(反过来,Spring数据)需要一个字段来唯一标识每个document。如果你已经有一个id字段,如果它对每个对象都是唯一的,那么是的,你可以用@Id注释它,mongo将负责其余的事情。

如果没有,您必须创建一个新字段并将其映射到_id