从最初存储为 Blob 的嵌入式实体读取

Embedded entity reading from originaly stored as Blob

从 AppEngine 低级数据存储API迁移到 objectify 5:读取实体时出错。

我使用数据存储实体工具看到的是因为旧数据将“Ifont”保留为“Blob”,应该变成“Embedded class

@Entity(name = "Mandant")
public class Mandant implements IsSerializable {
        @Id
    private Long id;
    @Index
    private String nr = "";
    private Ifont fontHeader;

我们如何读取这个 Blob 数据?

您最初是如何将数据保存到 Blob 字段中的? Blob 只是一个字节数组;它可以是任何东西。如果您使用 Java 序列化写出 Ifont(从您的示例看来很可能),这很容易 - 只需像这样声明该字段:

private @Serialize Ifont fontHeader;

这将保留 Blob 结构。但是,如果您确实希望将其存储为 EmbeddedEntity,则需要迁移数据。这里有一些策略建议:

https://github.com/objectify/objectify/wiki/SchemaMigration