J'ai un objet avec des chaînes et des entiers sous forme de champs, que je peux mettre à jour sans problème. Je trouve juste le bon champ avec l'identifiant unique et l'appel setPersonalName ("Mike"); et faites cet objet avec pm.makePersistent (Personal); Et c'est fait!L'objet ne se mettra pas à jour
Le problème est avec les champs de tableau. Disons un personnel a des missions et je stocker dans
@Persistent
private String[] Assignments;
Disons que je veux mettre à jour la 3ème mission donc j'appelle Personal.setAssignment (3, « Donnez le rapport »);
et pm.makePersistent (Personnel); Cela ne sera pas rendu persistant d'une façon ou d'une autre et dans les journaux il n'y a pas d'erreurs (seulement ceci: org.datanucleus.ObjectManagerImpl close: La mise à jour nontx exceptionnelle est validée dans le datastore)! J'ai vérifié si la valeur est dans l'objet, c'est. La valeur est déjà dans l'objet Personnel. Il n'y a aucun problème avec les champs, qui ne sont pas un tableau. (En passant, je peux ajouter un objet comme celui-ci à partir de rien, seule la mise à jour ne fonctionnera pas).
Merci pour toute idée, je recherchais toute la journée, mais n'a pas pu trouver quoi que ce soit ...
est la méthode setAssignment ici:
public void setAssignment(int AssignmentNo, String Assignment) {
this.Assignments[AssignmentNo-1] = Assignment;
System.out.println(this.Assignments[AssignmentNo-1] + " " + AssignmentNo + " " + this.id);
}
'Disons que je veux mettre à jour la 3ème assignation de sorte que j'appelle Personal.setAssignment (3," Give the report "); '- Puisque les tableaux sont basés sur 0, cela ne devrait-il pas être' Personal.setAssignment (2, "Donner le rapport"); '? – Thomas
oui Je gère cela dans la fonction setAssignment(). Il soustrait 1 et utilise comme index pour le tableau. – Genom