Je suis créé Data Class et stocker des données en utilisant PersistenceManager, mais plus tard, j'ai édité ma classe de données et maintenant j'ai un problème avec les données de partage J'essaie de supprimer cet objet (pm.deletePersistent (e)), mais exception I'have:problème avec la suppression d'objet, en utilisant PersistenceManager
javax.jdo.JDOUserException: ne pouvaient être NestedThrowables supprimés Une ou plusieurs instances: org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException: La classe "La classe" java.lang .Class "n'est pas persistante. Cela signifie qu'elle n'a pas été améliorée, ou que la version améliorée du fichier n'est pas dans CLASSPATH (ou est cachée par une version non améliorée), ou que les méta-données/annotations de la classe sont pas trouvé. " n'est pas Persistable
qui est ma classe de données:
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;
}
qui est mon fichier .jsp, mais deletePersistentAll (Task.class) ou pm.deletePersistent (e) ne fonctionne pas parce que la classe de travail a changé (un champ changé de type d'un utilisateur à cordes)
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("[email protected]");
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 ne peut pas être jeté à com.google.appengine.api.users.User
Que dois-je faire pour effacer toutes les données de PersistenceManager?
plz aide
Veuillez joindre une classe de tâches. btw cela vous dérange-t-il d'utiliser deletePersistentAll au lieu de itérateur? – Eugene
oui je l'ai fait avant et cela n'a pas fonctionné – qazah
cela vous dérangerait de tracer à partir de cette ligne 'if (results.iterator(). HasNext())' et afficher ici le contenu de *** résultats *** ensemble . Vous avez également un message d'exception tronqué. Pourriez-vous l'afficher dans une version complète? Cordialement
Eugene – Eugene