Morphia/Mongo 无法 link @Reference,给出:无法获取引用
Morphia/Mongo not able to link @Reference, giving : The reference could not be fetched
我已经设置了一个简单的数据存储来存储版本和构建。这是他们的 类-
@Entity("Version")
public class Version {
@Id
private ObjectId id = new ObjectId();
public Version() {}
private String name;
}
@Entity("Build")
public class Build {
public Build() {}
@Id
ObjectId id = new ObjectId();
@Reference
Version version;
String name;
}
(类 中的字段实现了它们的 getter、setter、构造函数和 toString)。
现在我尝试先简单地存储版本,然后尝试存储构建,然后读取存在的所有构建。
Version version = new Version("first");
Version version2 = new Version("second");
VersionDAO.saveVersion(version);
VersionDAO.saveVersion(version2);
VersionDAO.printAllVersions();
Build build = new Build(version, "Hello");
BuildDAO.saveBuild(build);
BuildDAO.getAllBuilds();
VersionDAO.getAllVersions()
工作正常并为我提供了存储的版本列表,但是 BuildDAO.getAllBuilds()
抛出一个错误说-
Exception in thread "main" dev.morphia.mapping.MappingException: Could not map trying_morphia.Build with ID: 602f4e9ff760cd5638698273 in database 'Builds'
Caused by: dev.morphia.mapping.MappingException: The reference ({ "$ref" : "Version", "$id" : "602f4e7b96f28d54bd1cc883" }) could not be fetched for trying_morphia.Build.version
似乎有一些我无法弄清楚的参考链接问题。我必须使用 @Reference,因为这段代码是更大代码的一部分,我无法更改整个代码。
MongoDB Compass 将构建条目的值显示为-
_id: ObjectId("602f4e9ff760cd5638698273")
className: "trying_morphia.Build"
version: DBRef(Version, 602f4e7b96f28d54bd1cc883, undefined)
name:"Hello"
我在参考中遗漏了什么?
我试过的方法:将 Version 和 Build 的 id 都更改为字符串。
Morphia 不支持跨数据库引用。您将需要手动管理这些引用。
我已经设置了一个简单的数据存储来存储版本和构建。这是他们的 类-
@Entity("Version")
public class Version {
@Id
private ObjectId id = new ObjectId();
public Version() {}
private String name;
}
@Entity("Build")
public class Build {
public Build() {}
@Id
ObjectId id = new ObjectId();
@Reference
Version version;
String name;
}
(类 中的字段实现了它们的 getter、setter、构造函数和 toString)。
现在我尝试先简单地存储版本,然后尝试存储构建,然后读取存在的所有构建。
Version version = new Version("first");
Version version2 = new Version("second");
VersionDAO.saveVersion(version);
VersionDAO.saveVersion(version2);
VersionDAO.printAllVersions();
Build build = new Build(version, "Hello");
BuildDAO.saveBuild(build);
BuildDAO.getAllBuilds();
VersionDAO.getAllVersions()
工作正常并为我提供了存储的版本列表,但是 BuildDAO.getAllBuilds()
抛出一个错误说-
Exception in thread "main" dev.morphia.mapping.MappingException: Could not map trying_morphia.Build with ID: 602f4e9ff760cd5638698273 in database 'Builds'
Caused by: dev.morphia.mapping.MappingException: The reference ({ "$ref" : "Version", "$id" : "602f4e7b96f28d54bd1cc883" }) could not be fetched for trying_morphia.Build.version
似乎有一些我无法弄清楚的参考链接问题。我必须使用 @Reference,因为这段代码是更大代码的一部分,我无法更改整个代码。
MongoDB Compass 将构建条目的值显示为-
_id: ObjectId("602f4e9ff760cd5638698273")
className: "trying_morphia.Build"
version: DBRef(Version, 602f4e7b96f28d54bd1cc883, undefined)
name:"Hello"
我在参考中遗漏了什么?
我试过的方法:将 Version 和 Build 的 id 都更改为字符串。
Morphia 不支持跨数据库引用。您将需要手动管理这些引用。