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将不知道在哪里保存数据,也不知道如何读回数据