mongoTempalte.save()一个抽象类

时间:2019-07-17 12:32:47

标签: java mongodb spring-boot spring-data polymorphism

我有一个Entity类,它是一个包含基本字段的抽象类。考虑以下代码:

Entity entity = new DogEntity()
mongoTemplate.save(entity)

在这种情况下,MongoDB将仅包含Entity的字段。另一方面,如果我们将第一行替换为DogEntity dogEntity = new DogEntity(),则会插入所有字段。

此外,在第一种情况下,Spring Data不会将_class字段添加到文档中。

假设给您一个抽象实体,您将如何保存它,以便将所有字段都插入到文档中?

我当然可以进行instanceof检查,但这是一种手动/繁琐的方法,还需要加班。

有什么选择?

1 个答案:

答案 0 :(得分:0)

我已经弄清楚了,我将其分享给以后的读者:

基类(即Entity)不应用@Document注释。