用于类继承的Spring Data MongoDb

问题描述 投票:9回答:2

我想将不同的数据存储到MongoDb中的一个集合中,并使用带有适当字段的Spring数据bean。

对不起,我已经跳过了细节。

父豆:

class A
    int a

儿童:

class B extends A
    double b

class C extends A
    String c

所以,在mongo中有以下文件

{a : 1, b : 2.3, c : "Test"}

当我获取数据时,可以。但是,当我从CrudRepository中为B调用save

方法时,它将重写所有数据,并且我丢失了C。

我只知道一个不错的选择,可以创建具有增量更新的自定义保存方法,例如

update.set("b", newvalue)...

但带有反射。

您还有其他想法吗?

提前感谢。

我想将不同的数据存储到MongoDb中的一个集合中,并使用带有适当字段的Spring数据bean。父级bean:类A转换为子类:B类扩展...

java mongodb spring-data mongodb-java
2个回答
6
投票

对于Spring-data MongoTemplate,除了对象中的字段外,还保存了其他字段名称_class,它告诉模板它要保存哪个类。您将无法使用另一个对象的资源库(继承关系的无论如何


0
投票

我也有同样的问题,我通过在派生类中添加默认构造函数并对每个派生类使用特定的存储库来解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.