【发布时间】:2017-04-29 23:26:41
【问题描述】:
我有这两个文件,用户:
@Document(collection = "User")
public class User {
// fields
}
和联系方式:
@Document(collection = "Contact")
public class Contact extends User{
// fields
}
然后我有一个文件可以参考用户或联系人:
@Document(collection = "DocumentFile")
public class DocumentFile {
@DBRef
private User user;
}
所以我可以在 DocumentFile#user 中添加用户或联系人,但是如果我将联系人设置为 DocumentFile#user,那么我会丢失引用,因为在 MongoDB DocumentFile#user 中存储为“_class”:“...Contact” . 有解决办法吗?
【问题讨论】:
-
我用 DocumentFile 中的两个不同字段解决了它,但我仍然对如何以基本类型 User的继承方式来解决它感兴趣>
-
失去参考是什么意思?恢复数据有问题吗?
-
是的,因为 DocumentFile 文档中的 _class 类型是 ...User (如果它是 Contact-reference 也是如此)但它应该是...Contact,因此当我检索一个 documentFile 时,用户字段为空。
标签: mongodb spring-data dbref