首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Morphia和对象图

Morphia和对象图
EN

Stack Overflow用户
提问于 2012-04-26 07:44:56
回答 3查看 870关注 0票数 1

我还没有使用Morphia,但我正在考虑将其用于当前的项目。

假设我有一个包含许多@Reference注释的POJO,并要求Morphia从数据库中获取对象图。如果我随后进行另一个DAO或DataStore调用,并要求Morphia获取已经在第一个图中实例化的某个对象,Morphia会返回对已经实例化的对象的引用还是会创建一个新实例?

如果Morphia每次都会返回一个新的对象实例,那么有没有人建议如何最好地创建一个不会复制已实例化对象的Morphia支持的存储库呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-27 14:01:55

正如我在Morphia中看到的,它将重新阅读每个参考文献。这就是我创建Morphium的原因之一。我在那里集成了一个缓存层,所以如果你读了一个引用,这个引用就不会被再次读到(至少,如果你是按ID搜索的话……)

票数 3
EN

Stack Overflow用户

发布于 2012-05-10 06:19:06

我们在生产中使用morphia,有两种方法可以确保你不会加载引用,这也是我们遇到的。

一种是在主类中定义@Reference元素时使用延迟加载选项。当然,这意味着该行为对于该对象是“全局的”。

更好的方法是不使用Morphia定义@引用,而是自己管理引用。如果你需要代码样本,请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2012-06-11 04:59:08

我也不再使用@Reference,而是声明如下内容:

代码语言:javascript
复制
 ObjectId itemId

而不是拥有字段项。这有两个好处:(1)它让我可以通过帮助器getObject(...)定义getter。(2)它在Mongo对象中存储了一个简单的ObjectId,而不是一个完整的DBRef,它包含了集合名,因此大约是数据大小的两倍。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10325365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档