JDO app引擎:尝试持久保存类的List成员时抛出的异常

时间:2012-01-28 15:07:03

标签: google-app-engine jdo

我在应用引擎服务器上运行以下JDO代码。

我收到以下错误消息:

org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类“类”java.util.ArrayList“不可持久化。这意味着它要么没有增强,要么文件的增强版本不在CLASSPATH(或未被未增强的版本隐藏),或找不到该类的元数据/注释。“是不可持续的。这意味着它没有被增强,或者文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏),或者找不到类的元数据。

这是我的班级:

@PersistenceCapable(detachable="true")
class Store {

  @PrimaryKey
  @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
  private Key key;

  @Persistent
  @Element(dependent = "true")
  private List<User> users;

  List<User> getUsers() {
    return users;
  }

}

当我跑步时

pm.makePersistent(store.getUsers());

我得到了上述异常。知道为什么会这样吗? 我认为文档说明我可以有一个List&lt;&gt;作为一个持久的 元素,它将变成一个多值属性。

谢谢,

John Goche

1 个答案:

答案 0 :(得分:2)

我“猜”,因为该方法接受一个对象并传入一个List。如果你想保留一个持久化对象列表,我希望调用pm.makePersistentAll(),这就是JDO文档所说的。