我有一个使用 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 实例。这是我调用 Calendar.getInstance() 时得到的默认日期
看起来我错过了一些很容易的东西。我是吗?