首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Morphia中直接加载嵌入类,而不加载嵌入类

在Morphia中直接加载嵌入类,而不加载嵌入类
EN

Stack Overflow用户
提问于 2017-05-04 18:22:03
回答 1查看 139关注 0票数 1

我有以下两个简单的类,它们是我的问题结构的典范:

第一个类,嵌入了第二个类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class MyClass {
    @Id
    private String myClassName;
    private String otherField;
    @Embedded
    private List<MyEmbedded> myEmbeddeds;
}

第二个类将被嵌入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Embedded
public class MyEmbedded {
    @Id
    private String name;
    private String some;
    private String other;
}

在实际情况中,这两个类都有一个复杂得多的结构,有很多字段和引用。因此,我不想加载整个MyClass对象,因为在大多数情况下,我只需要MyEmbedded列表中的一个特定元素(大多数情况下是只读访问)。

另一方面,将MyEmbedded类设置为简单的引用是没有选择的,因为我们对MyClass有一些严重依赖于myEmbeddeds的复杂查询,这意味着我们必须执行多个查询,这不是我们想要的。

所以,主要的问题是:

如何在不加载“父”-object的情况下,将myEmbeddeds列表中的一个特定元素作为MyEmbedded-object直接加载?

也许有一种方法可以使用AggregationPipeline?(您可以在pipeline.aggregate()方法中定义一个“目标”类,您可以在morphia的测试中找到一些示例,就像您可以看到here一样,但我没有让它适用于我的情况)

EN

回答 1

Stack Overflow用户

发布于 2017-05-04 19:03:04

您可以根据MyEmbedded的属性查询MyClass,然后使用投影仅从结果中提取myEmbeddeds

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

https://stackoverflow.com/questions/43790180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文