java - MongoDB如何使用morphia加载引用文档的两个属性

标签 java mongodb morphia

如何使用吗啡加载引用文档/实体的两个属性

我有这样的类(class)和学校
人员类别

@Entity
public class Person {
  @Id private ObjectId id;
  private String name;
  @Embedded private PersonEducation schoolInfo;
}
@Embedded
public class PersonEduction {
  @Reference private School school;
  private String year;
  private String degree;
}


学校类(class)

@Entity
public class School {
   @Id private ObjectId id;
   private String name;
   private String address;
   private String description;
}

如何在 Person 类中获取 School 的 id 和 name 字段 例子 当我想要人时

Person person = datastore.find(Person.class).field("name").equals("xyz").get();
person.gerSchoolInfo();

响应(不需要所有学校类(class)字段)

{school:{_id:ObjectId("4fcef3e20364a375e7631fb0"), name:"SchoolA"}, year:"1990", degree:"MBA" }

如果我查询学校,其中 _id=ObjectId("4fcef3e20364a375e7631fb0"),我会得到所有学校字段

{_id:ObjectId("4fcef3e20364a375e7631fb0"), name:"xyz", address="some add", description="some desc"}

最佳答案

您应该使用

,而不是使用@Reference
key<School> school;

并使用自定义查询来加载它。

datastore.createQuery(School.class).retrivedFields(true, "id","name");

关于java - MongoDB如何使用morphia加载引用文档的两个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929516/

相关文章:

java - 附近找不到地理空间和Morphia

java - 如何从属性文件定义注释的字段值

java - 使用控制台更改连接池

c# - 如何在 .Net 中验证 Mongo ObjectId

java - 引用的延迟加载

java - Tomcat 7 中的 ClassNotFoundException

java - Eclipse Luna 中的空指针异常

java - 无法实例化 Activity 组件信息类未找到异常Android

java - X11 转发影响 Java Swing GUI 下拉列表 - 项目不可选择,菜单立即折叠

node.js - 使用 mongoose 处理 $in