春季数据和mongoDB-继承和@dbref



我有这两个文档,用户:

@Document(collection = "User")
public class User {
    // fields
}

和联系人:

@Document(collection = "Contact")
public class Contact extends User{
    // fields
}

然后我有一个文档,该文档是指用户ODER联系人:

@Document(collection = "DocumentFile")
public class DocumentFile {
    @DBRef
    private User user;
}

因此,我能够在DocumentFile#用户中添加用户ODER联系人,但是如果我将联系人设置为DocumentFile#用户,则丢失了参考,因为在MongoDB documentfile#中,将用户存储为" _class":" ..." ...联系人"。有解决方案吗?

这就是您的类应该使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;
    }
}

联系人

请注意,您不需要此类的文档注释。

public class Contact extends User {
    private String address;
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

文档文件

@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;
    }
}

您只需要IDocumentFileRepositoryIUserRepository即可进行CRUD操作。

其余代码以及测试用例已上传到GitHub。

https://github.com/saagar2000/spring

相关内容

  • 没有找到相关文章

最新更新