JAXB, les annotations pour setter/getter
@XmlType
@XmlAccessorType(XmlAccessType.FIELD) //here I need this access
public class User implements Serializable
{
//...
@XmlTransient
private Set<Values> values;
//...
@XmlElement
private Set<History> getXmlHistory()
{
return new CustomSet<Values, History>(Values);
}
private void setXmlHistory(final Set<History> aHistory)
{
this.values = new HashSet<Values>();
}
}
Quand je suis de créer l'Utilisateur de l'objet dans le code Java et après créer XML, puis tout normalement.
Mais quand j'essaie d'obtenir de l'Utilisateur de l'objet à partir de XML, puis le champ values
toujours null
. Donc, setter pas de travail ici. Peut-être setter besoin de quelques annotation trop?
XML ressemble à
<user>
...
<xmlHistory>
//... record 1
</xmlHistory>
<xmlHistory>
//... record 2
</xmlHistory>
</user>
et où est le setter pour
faute de frappe est corrigée
Quel est votre XML?
XML est ajouté...
roles
? Je vois que pour values
.faute de frappe est corrigée
Quel est votre XML?
XML est ajouté...
OriginalL'auteur Ilya | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas que c'est un JAXB problème, comme le modèle suivant:
Le problème que vous rencontrez est une conséquence de la logique que vous avez dans vos méthodes get/set. Depuis votre
values
champ n'est pas initialisé, je ne suis pas sûr de savoir commentCustomSet
serait en mesure de le mettre à jour.Si setter est de travail, puis des "valeurs" ne doit pas être null
J'ai remarqué que vos méthodes d'accès sont privés. Voyez-vous le même comportement si elles sont publiques?
Pas hepful de nouveau. de lecture des œuvres, setter ne fonctionne pas
J'ai mis à jour ma réponse. Je crois que le
issue
est queCustomSet
n'est pas la mise à jour de lavalues
champ. La correction peut être aussi simple que l'initialisation de lavalues
champ au lieu d'être nulle.OriginalL'auteur bdoughan
Je crois que
@XmlAccessorType(XmlAccessType.FIELD)
en combinaison avec votre@XmlTransient
est la source du problème. Avez-vous essayé sans le transitoire d'annotation?OriginalL'auteur alegen