gpt4 book ai didi

java - Morphia 在从实体子类更新字段时更改 className

转载 作者:行者123 更新时间:2023-12-01 12:49:38 26 4
gpt4 key购买 nike

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

设备类定义如下:

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

TemperatureDevice类定义如下:

@Entity("Device")
public class TemperatureDevice extends Device {
...
}

最佳答案

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

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

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

关于java - Morphia 在从实体子类更新字段时更改 className,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24331646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com