我使用PersistenceManager创建了数据类并存储数据,但后来我编辑了我的数据类,现在我对共享数据有问题 我正在尝试删除这些对象(pm.deletePersistent(e)),但我有例外:
javax.jdo.JDOUserException:无法删除一个或多个实例NestedThrowables:org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类“类”java.lang.Class“不可持久化。这意味着它要么没有得到增强,或者文件的增强版本不在CLASSPATH中(或被未增强版本隐藏),或者找不到类的元数据/注释。“是不可持续的
这是我的数据类:
import com.google.appengine.api.datastore.Key;
import java.util.ArrayList;
import java.util.Date;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@PersistenceCapable
public class Task {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String author;
@Persistent
private String task;
@Persistent
private Date date;
@Persistent
private String note;
@Persistent
private ArrayList<String> label;
@Persistent
private int numberoflist;
public Task (String author, String task,String note, Date date, int numberoflist)
{
this.author=author;
this.task=task;
this.date=date;
this.numberoflist=numberoflist;
this.note=note;
}
这是我的.jsp文件,但deletePersistentAll(Task.class)或pm.deletePersistent(e)不起作用,因为类Task已更改(一个字段从User更改为String)
try{
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.flush();
Query query = pm.newQuery(Task.class);
query.declareParameters("String authorParam");
List<Task> results = (List<Task>) query.execute("user@mail");
try
{
if (results.iterator().hasNext())
{
for (Task e : results)
{
pm.deletePersistent(e);
%>
<p><%= e.getTask() %> </p>
<%
}
}else
{
%>
<p>Empty</p>
<%
}
} finally {
query.closeAll();}
pm.close();
}catch(Exception ex) {...}
exception:java.lang.ClassCastException:java.lang.String无法强制转换为com.google.appengine.api.users.User
我要做什么来清除PersistenceManager中的所有数据?
plz help
答案 0 :(得分:1)
另外,请在此处发布完整代码,或最低限度的代码段。
此致 尤金