Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring数据MongoDB:将子类另存为超类_Java_Spring_Mongodb_Inheritance_Spring Data - Fatal编程技术网

Java Spring数据MongoDB:将子类另存为超类

Java Spring数据MongoDB:将子类另存为超类,java,spring,mongodb,inheritance,spring-data,Java,Spring,Mongodb,Inheritance,Spring Data,B类是a类的一个子类 我有一个类B的对象。但是,我只需要将类A的字段持久化到MongoDB 使用Spring数据存储库执行以下操作时: repository.save( (A) b ) 然而,这将导致B的所有字段都保存到MongoDB中,“_class”字段为“B” 如何将B类的对象保存为MongoDB的A类对象 编辑:背景: 这些类如下所示: class A { @Id private ObjectId id; private String property;

B类是a类的一个子类

我有一个类B的对象。但是,我只需要将类A的字段持久化到MongoDB

使用Spring数据存储库执行以下操作时:

repository.save( (A) b )
然而,这将导致B的所有字段都保存到MongoDB中,“_class”字段为“B”

如何将B类的对象保存为MongoDB的A类对象


编辑:背景:

这些类如下所示:

class A {
    @Id
    private ObjectId id;
    private String property;
    /* more properties, setters & getters */
}

class B extends A {
    private String additionalProperty;
    /* more properties, setters & getters */
}

我只将类B用作控制器方法的
@RequestParam
,因为它需要
additionalProperty
来处理请求。稍后,该程序将只与类A一起工作。当然,我可以使用单个类并注释所有附加字段,这些字段在以后使用
@Transient
时将不再需要。但是,这会使我的域模型类膨胀到许多不属于它的字段。

需要更多信息。您的实体类别A和B是什么样子的。您是否使用spring数据rest?如果是这样,则可以使用
摘录投影
。你有没有调查过《瞬变》我觉得《代码》节选《投影》在这方面帮不了我什么忙<代码>@Transient可能是一种折衷,但不是我真正想要的(请参见编辑)。需要更多信息。您的实体类别A和B是什么样子的。您是否使用spring数据rest?如果是这样,则可以使用
摘录投影
。你有没有调查过《瞬变》我觉得《代码》节选《投影》在这方面帮不了我什么忙<代码>@Transient将是一种折衷,但不是我真正想要的(请参见编辑)。