Java Morphia在更新实体子类中的字段时更改类名

Java Morphia在更新实体子类中的字段时更改类名,java,mongodb,inheritance,entity,morphia,Java,Mongodb,Inheritance,Entity,Morphia,我有一个类“设备”,它由一个“TemperatureDevice”类扩展。 有时我需要使用通用设备类处理TemperatureDevice实体,但在更新数据后,我会丢失TemperatureDevice中声明的所有字段。类名也从org.package.TemperatureDevice更改为org.package.Device 设备类别定义如下: @Entity("Device") public class Device implements MongoEntity<ObjectId>

我有一个类“设备”,它由一个“TemperatureDevice”类扩展。 有时我需要使用通用设备类处理TemperatureDevice实体,但在更新数据后,我会丢失TemperatureDevice中声明的所有字段。类名也从org.package.TemperatureDevice更改为org.package.Device

设备类别定义如下:

@Entity("Device")
public class Device implements MongoEntity<ObjectId> {
   ...
}
@Entity("Device")
public class TemperatureDevice extends Device {
   ...
}

如果使用
save()
,这不是预期的行为吗?由于没有模式,实体完全描述了文档。而实际的类名将存储在文档中

save()
获取对象并将其保存在给定的
\u id
下。如果该字段为空,将创建一个新实体

您需要创建一个更新查询,明确设置要更改的字段。或者您只能通过完整的实体类访问数据。

附加一个可执行(希望)测试用例将有助于展示问题。