qum*_*uma 2 mongodb dbref spring-data
我有这两个文件,用户:
@Document(collection = "User")
public class User {
// fields
}
Run Code Online (Sandbox Code Playgroud)
和联系方式:
@Document(collection = "Contact")
public class Contact extends User{
// fields
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个文档,它引用了“用户oder联系人”:
@Document(collection = "DocumentFile")
public class DocumentFile {
@DBRef
private User user;
}
Run Code Online (Sandbox Code Playgroud)
因此,我能够在DocumentFile#user中添加用户或联系人,但是如果我将Contact设置为DocumentFile#user,则丢失了引用,因为在MongoDB中,DocumentFile#user存储为“ _class”:“ ... Contact”。有解决方案吗?
这就是类使DBRef与继承一起工作的样子。
用户
@Document(collection = "User")
public class User {
@Id
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
联系
请注意,您在此类上不需要文档注释。
public class Contact extends User {
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Run Code Online (Sandbox Code Playgroud)
文件档案
@Document(collection = "DocumentFile")
public class DocumentFile {
@Id
private String id;
public void setId(String id) {
this.id = id;
}
@DBRef
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
Run Code Online (Sandbox Code Playgroud)
您只需要IDocumentFileRepository和IUserRepository用于CRUD操作。
其余代码以及测试用例已上传到github。
https://github.com/saagar2000/Spring
| 归档时间: |
|
| 查看次数: |
1696 次 |
| 最近记录: |