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

Psy*_*nch 5 java spring spring-data-mongodb spring-boot

我已经建立了自己的机制来为我的域对象分配身份,因此在持久化它们时,跟踪MongoDB分配给他们的东西确实没有太大价值。但是,我为域类命名标识字段是id因为它简洁明了且易于理解。问题在于,根据文档,Spring会自动将此字段映射到MongoDB分配的ObjectID。如何避免发生这种情况,而不必重命名我的id字段,或@Id仅为了解决此问题而定义带有注释的自定义标识字段?

Dar*_*hta 0

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

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