![](/img/trans.png)
[英]Save an embedded document _id as ObjectId but display it as a String
[英]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.