Java MongoDB中的引用
抱歉,我对MongoDB和Spring数据非常陌生,我对这两个类有一个问题:Java MongoDB中的引用,java,mongodb,spring-data,nosql,Java,Mongodb,Spring Data,Nosql,抱歉,我对MongoDB和Spring数据非常陌生,我对这两个类有一个问题: @Document(collection = "person") public class Person { /** * */ private static final long serialVersionUID = 6268875544266598239L; @Id private String Id; private String name;
@Document(collection = "person")
public class Person {
/**
*
*/
private static final long serialVersionUID = 6268875544266598239L;
@Id
private String Id;
private String name;
//@DBRef(db = "mail")
ArrayList<Mail> mails = new ArrayList<Mail>();
在这种情况下,我在引用方面会有问题吗?我的意思是,我是否需要将
@DBref
或@Reference
或任何其他注释作为@ManyToOne
注释放入JPA
?我看到了很多例子,但我不能得到的一点,它没有任何注释工作吗 不带注释,它将邮件
对象内联保存在个人
文档中。反之,它将使用注释将邮件
保存在个人
文档中
例如:
文档中没有person
:@DBRef
{“id”:“foo”,“name”:“bar”,“mails”:[{“id”:“abc”,“mail”:“hello”},{“id”:“def”,“mail”:“world”}}
document withperson
:@DBRef
{“id”:“foo”,“name”:“bar”,“mail”:[{“$ref”:“mail”,“$id”:“abc”},{“$ref”:“mail”,“$id”:“def”}}
个人
和邮件
集合之间的一致性,您应该使用@DBRef
,在这种情况下,它的行为就像JPA上下文中的@OneToMany
注释
但是如果在99%的情况下需要两个文档之间的关系,则需要关系dbms而不是mongo
@Document(collection = "mail")
public class Mail {
/**
*
*/
private static final long serialVersionUID = 9149555841222037638L;
@Id
private String Id;
private String mail;
Person person;