Java “Mongo Spring数据”;“外国”;钥匙

Java “Mongo Spring数据”;“外国”;钥匙,java,json,spring,mongodb,Java,Json,Spring,Mongodb,我正在使用管理我的MongoDB数据库 在一个集合中,我有两个ObjectId字段_id,另一个引用另一个集合中的实例 我的收藏类别如下: public class CollectionA { private ObjectId id; private String collectionADescription private ObjectId collectionBId } 通过这样指定的类,我能够成功地将“外键”作为$oid插入 问题是我遇到以下绑定错误: 字段“collectionBId”

我正在使用管理我的MongoDB数据库

在一个集合中,我有两个ObjectId字段_id,另一个引用另一个集合中的实例

我的收藏类别如下:

public class CollectionA
{
private ObjectId id;
private String collectionADescription
private ObjectId collectionBId
}
通过这样指定的类,我能够成功地将“外键”作为$oid插入

问题是我遇到以下绑定错误:

字段“collectionBId”上的对象“collectionA”中存在字段错误:已拒绝 价值[];代码 [typeMismatch.collectionA.collectionBId,typeMismatch.collectionBId,typeMismatch.org.bson.types.ObjectId,typeMismatch]; 论据 [org.springframework.context.support.DefaultMessageSourceResolvable: 代码[collectionA.collectionBId,collectionBId];参数[];默认值 消息[collectionBId]];默认消息[转换属性失败] 将“java.lang.String”类型的值转换为所需类型 属性“collectionBId”的“org.bson.types.ObjectId”;嵌套 异常为java.lang.IllegalStateException:无法转换的值 将[java.lang.String]键入所需的类型[org.bson.types.ObjectId] 属性“collectionBId”:没有匹配的编辑器或转换策略 发现]

如果我将collectionBId变量设置为String,则变量将作为String而不是$oid插入

我怎样才能做到这一点


Thans

如果您真的想要数据存储中的关系,那么应该使用Spring Data MongoDB注释。但是我建议您重新考虑/重新设计您的模式,使用嵌入式文档。也许文档将帮助您设计更好的模式