我正在使用Java的Google应用引擎数据存储,并尝试加载一个具有枚举列表的对象。每次加载对象时,列表都是null。该对象为:
@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://localhost:8080/_ah/admin查看数据存储中的数据,我能看到我的列表已经被保存,但是在对象加载时它并不存在。我使用Eclipse插件创建了我的项目,并且据我所知没有更改过数据存储设置。那么为什么我的枚举列表为空?