使用 Morphia 在 MongoDB 中映射 POJO 和使用引用
Mapping POJOs and Using Reference in MongoDB using Morphia
我有两个模型 classes。一个是 Company.java,另一个是 HumanResource.java。
Company.java
@Entity("companies")
public class Company {
@Id
private ObjectId id = new ObjectId();
private String companyName;
private String emailAddress;
private String pictureUrl;
@Reference
private List<HumanResource> humanResources;
...
HumanResource.java
@Entity("humanresources")
public class HumanResource {
@Id
private ObjectId id = new ObjectId();
private String firstName;
private String lastName;
private String emailAddress;
@Reference
private Company company;
...
我想实现的是当我将公司列表保存到数据存储时,应该自动插入相关的人力资源文档列表。
此外,我声明
@Id
private ObjectId id = new ObjectId();
在每个模型中 class。这是一个好方法还是我应该改变它?
Morphia 不会对这些引用调用 save()
。您必须在要保留的实例上调用 save()
。您可以传入一个实例列表,这样就不必循环,但每个实例都需要显式传入。
我有两个模型 classes。一个是 Company.java,另一个是 HumanResource.java。
Company.java
@Entity("companies")
public class Company {
@Id
private ObjectId id = new ObjectId();
private String companyName;
private String emailAddress;
private String pictureUrl;
@Reference
private List<HumanResource> humanResources;
...
HumanResource.java
@Entity("humanresources")
public class HumanResource {
@Id
private ObjectId id = new ObjectId();
private String firstName;
private String lastName;
private String emailAddress;
@Reference
private Company company;
...
我想实现的是当我将公司列表保存到数据存储时,应该自动插入相关的人力资源文档列表。
此外,我声明
@Id
private ObjectId id = new ObjectId();
在每个模型中 class。这是一个好方法还是我应该改变它?
Morphia 不会对这些引用调用 save()
。您必须在要保留的实例上调用 save()
。您可以传入一个实例列表,这样就不必循环,但每个实例都需要显式传入。