Google app engine Appengine/Java-持久化字符串

Google app engine Appengine/Java-持久化字符串,google-app-engine,persistence,Google App Engine,Persistence,我的目标是将字符串持久化到数据存储 final static PersistenceManager pm = PMF.get().getPersistenceManager(); public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { String s = "test"; System.out.println(pm.makePersis

我的目标是将字符串持久化到数据存储

final static PersistenceManager pm = PMF.get().getPersistenceManager();
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
    {
        String s = "test";
        System.out.println(pm.makePersistent(s));
        PrintWriter pw = resp.getWriter();
        pw.write("Data Saved");
    }
不确定以下错误的原因

类“The class”java.lang.String”是不可持久的 它或者没有被增强,或者 文件不在类路径中(或被未增强的 版本),或找不到类的元数据/批注。“ 是不持久的。这意味着它要么没有得到增强,要么 文件的增强版本不在类路径中(或 被未增强版本隐藏),或者类的元数据是 没有找到

原因:

org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException: 类“The class”java.lang.String”是不可持久的 它或者没有被增强,或者 文件不在类路径中(或被未增强的 版本),或找不到类的元数据/批注。“ 是不持久的。这意味着它要么没有得到增强,要么 文件的增强版本不在类路径中(或 被未增强版本隐藏),或者类的元数据是 没有找到。在 org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:241) 在 jdoMakePersistent(JDOPersistenceManager.java:674) 在 org.datanucleus.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:694) 位于com.arunraja101.SaveDataServlet.doGet(SaveDataServlet.java:91)


字符串对象是否无法持久化?

请查看文档:

)

您需要为它提供一个支持持久性的对象。当使用JDO时,有一个增强器过程,它实际上会打开并修改.class文件,以便能够持久化它们。查看GAE文档以持久化您的对象:


您可以在数据存储中保留字符串,但作为实体的一部分。您可以通过定义一个类来描述写入和读取数据存储的实体。例如,本文描述了如何使用JDO定义实体类

该类指示在将实体写入数据存储时存储哪些字段,以及在何处写入这些字段。如果没有这样一个类,当您调用
makePersistent
(示例代码就是这样)时,appengine将不知道在哪里保存数据,也不知道如何读回数据