Java 在Objectify中持久化类文本
如果我有一个以类文本作为字段的POJO,我可以将它持久化为Objectify吗Java 在Objectify中持久化类文本,java,google-app-engine,objectify,Java,Google App Engine,Objectify,如果我有一个以类文本作为字段的POJO,我可以将它持久化为Objectify吗 private Class<Foo> fooType; 私有类fooType; 这些文档似乎提出了不同的建议,但我想我应该检查一下以确定: Objectify只能持续存在。Java类型Class不是其中之一 此外,由于以下原因,字段fooType不包含一般参数信息 现在,有两种存储Classtype的方法: 仅存储类的长名称,通过@PrePersist/@PostLoad转换。这样做的好处是,您将获
private Class<Foo> fooType;
私有类fooType;
这些文档似乎提出了不同的建议,但我想我应该检查一下以确定:
Objectify只能持续存在。Java类型
Class
不是其中之一
此外,由于以下原因,字段fooType
不包含一般参数信息
现在,有两种存储Class
type的方法:
@Transient // tells Objectify to ignore field
public Class<Foo> fooType;
@PrePersist
public prePersist(Entity entity){
entity.setProperty("fooType", fooType.getName())
}
@PostLoad
public postLoad(Entity entity){
fooType = Class.forName(entity.getProperty("fooType"));
}
客观化只能持续。Java类型
Class
不是其中之一
此外,由于以下原因,字段fooType
不包含一般参数信息
现在,有两种存储Class
type的方法:
@Transient // tells Objectify to ignore field
public Class<Foo> fooType;
@PrePersist
public prePersist(Entity entity){
entity.setProperty("fooType", fooType.getName())
}
@PostLoad
public postLoad(Entity entity){
fooType = Class.forName(entity.getProperty("fooType"));
}
默认情况下,不会。但是,您可以相当轻松地添加一个转换器,将类作为字符串本地存储在数据存储中。保存时使用Class.getName(),加载时使用Class.forName() 以下是Objectify3中的一个示例: 请注意,如果类型与转换器无关,则在单个转换器中返回null。下面介绍如何启用它: 以下是Objectify4中的等效项: 下面介绍如何启用它:
默认情况下,不会。但是,您可以相当轻松地添加一个转换器,将类作为字符串本地存储在数据存储中。保存时使用Class.getName(),加载时使用Class.forName() 以下是Objectify3中的一个示例: 请注意,如果类型与转换器无关,则在单个转换器中返回null。下面介绍如何启用它: 以下是Objectify4中的等效项: 下面介绍如何启用它:
我喜欢这两个答案,但我认为龚最好让OP知道如何创建翻译人员,这样他将来可以坚持任何事情。我喜欢这两个答案,但我认为龚最好让OP知道如何创建翻译人员,这样他将来可以坚持任何事情。