J'ai eu ce code fonctionne bien avec EclipseLink 2.5.2, mais passer à 2.6.0 breaks l'annotation XmlValue
:Faire usage de @XmlValue dans la sous-classe
La propriété ou la valeur du champ ne peut pas être annotés avec XMLValue depuis c'est une sous-classe d'une autre classe liée au XML.
look classe de base comme ceci:
public abstract class Baseclass {
@XmlAttribute
private String baseValue;
// ...
}
L'une des deux sous-classes (motif composite, classe B peut avoir une liste d'éléments BaseClass):
@XmlRootElement(name = "A")
public class A extends BaseClass {
@XmlValue
private String aValue;
}
Et l'utilisation:
public class Root {
@XmlElements({
@XmlElement(class = A.class),
@XmlElement(class = B.class)
})
private BaseClass object;
}
Malheureusement, la présentation de la classe ne peut pas être changé, parce que JPA a persisté dans une base de données. J'ai essayé d'envelopper les classes A et B avec un XmlJavaTypeAdapter
sans succès.
Est-il possible d'utiliser l'annotation comme précédemment avec EL 2.6 ou via une classe d'adaptateur?
Avez-vous essayé d'ajouter à 'Root' l'annotation' @ XmlSeeAlso' spécifiant les classes concrètes? – Xstian