加载枚举的集合与谷歌App Engine数据存储
-
19-09-2019 - |
题
我使用与Java的古尔App Engine数据存储,并试图用枚举的列表加载的对象。我每次加载对象的列表为空。对象是
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class ObjectToSave {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private List<AnEnum> anEnumList;
//public getters and setters
}
在枚举是简单
public enum AnEnum {
VALUE_1,
VALUE_2;
}
保存它的代码是
ObjectToSave objectToSave = new ObjectToSave();
List<AnEnum> anEnumList = new ArrayList<AnEnum>();
anEnumList.add(AnEnum.VALUE_1);
objectToSave.setAnEnumList(anEnumList);
PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
pm.makePersistent(objectToSave);
} finally {
pm.close();
}
加载它的代码是
PersistenceManager pm = pmfInstance.getPersistenceManager();
try {
Key key = KeyFactory.createKey(ObjectToSave.class.getSimpleName(), id);
ObjectToSave objectToSave = pm.getObjectById(ObjectToSave.class, key);
} finally {
pm.close();
}
我可以使用查看数据存储中的数据 HTTP://本地主机:8080 / _ah /管理一>并且能看到我的名单已储存,但它是当对象被加载不存在。
我创建了项目与Eclipse插件,并没有因为据我所知作出了数据存储的设置进行任何更改。那么,为什么我的ID列表枚举空?
解决方案
是的,但你的列表字段是不是在默认装货所以因此不加载获取群组。 阅读 JDO取组。你可以将它添加到DFG,或启用自定义关闭PM之前获取群组,或只是“触摸”的领域。
- 安迪( DataNucleus将)
其他提示
你是如何创建ObjectToSave的实例?所有实例变量引用类型的默认值是零,因此,除非你有(附加的)代码来创建List<AnEnum>
的一个实例,并将它指定anEnumList
,空将预期。
不隶属于 StackOverflow