Java Spring数据MongoDB:将子类另存为超类
B类是a类的一个子类 我有一个类B的对象。但是,我只需要将类A的字段持久化到MongoDB 使用Spring数据存储库执行以下操作时: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;
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将是一种折衷,但不是我真正想要的(请参见编辑)。