繁体   English   中英

嵌入文档保存,ID 为 null

[英]embedded document save with id null

我有一个包含嵌入式文档tariffGrid的文档subGrids ,当我保存文档TariffGrid时,嵌入式文档的id保存为 null

我将private ObjectId _id用于嵌入文档,但仍然存在同样的问题

@Document
public class TariffGrid {

    @Id
    private String id;

    private List<SubGrid> subGrids;

}

@Document
public class SubGrid {

    @Id
    private String id;

    private String name;

}

{
    "_id" : ObjectId("5d8df1f9ccd0df45146817a6"),
    "subGrids" : [ 
        {
            "_id" : null,
            "name" : "string"
        }
    ]
}

假设您要将SubGrid保存为嵌入文档,则 SubGrid 的SubGrid上不需要@Document@Id 所以在这里你在 TariffGrid 的TariffGrid上调用save()对吗? 所以 spring-data-mongo 将在保存文档之前生成唯一的“Id”。 Spirng-data-mongo 不会为嵌入的文档自动生成 id。 假设如果您使用SubGrid object 再调用一个存储库save()方法,那么它会自动生成id字段,因为您添加了注释,但这意味着SubGrid将单独保存在另一个集合中,并且它将具有id

我相信您已经将它与 hibernate 的情况相同,它用于保存相关实体也使用@oneToMany 和 CascadeType。 但在 mongoDB 和嵌入文档的情况下,情况并非如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM