1

我有一个使用 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() 时得到的默认日期

看起来我错过了一些很容易的东西。我是吗?

4

1 回答 1

1

Calendarclass 不是数据存储模型支持的字段类型。有关受支持类型的详细信息,请查看Properties 和 Value Types。如果您需要在模型中有一个 Date 字段,请将其声明为java.util.Date并使用Calendar.

希望这可以帮助!

于 2012-10-28T20:35:42.657 回答