如何使用吗啡加载引用文档/实体的两个属性
我有这样的类(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/