我有一个使用java.util.Calendar类的GAE应用程序。 我的应用程序在一天过去后会更改一些内部数据/ 目前我想测试应用程序,所以我有一个假的日期数据成员,我手动设置和修改。 我想将它保存到数据存储区。 在尝试保存它大约2个小时后,我决定将它包装在一个名为FakeDate的类中。它看起来像这样:
@PersistenceCapable
public class FakeDate {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Serialized
private Calendar _fakeCurrentDate;
唯一的问题是,_fakeCurrentDate的数据未保存。 首先,我将日历日期设置为8/8/2012 当我打电话
pm.makePersistent(_currentDate);
看起来一切正常,但是当我打电话时
PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery(FakeDate.class);
try {
@SuppressWarnings("unchecked")
List<FakeDate> list = (List<FakeDate>) q.execute();
for (FakeDate f:list){
System.out.println(f.getDayOfMonth());
System.out.println(f.getMonth());
System.out.println(f.getYear());
}
} finally {
q.closeAll();
pm.close();
}
我得到的FakeDate实例拥有日期为27/9/2012的日历实例。这是我在调用Calendar.getInstance()
时获得的默认日期看起来我错过了很简单的事情。 我呢?
答案 0 :(得分:1)
Calendar
类不是数据存储模型支持的字段类型。有关支持的类型的详细信息,请查看Properties and Value Types。如果您需要在模型中添加日期字段,请将其声明为java.util.Date
并使用Calendar
对其进行初始化。
希望这有帮助!