2015-04-10 16 views
6

Secondo https://gist.github.com/VineetReynolds/5108580, JAXB Spec richiede che l'elemento annotato con @XmlID sia un String. Questo non è stato applicato da MOXy nelle versioni 2.5.x.
Con la versione 2.6.0, tuttavia, sembra che non sia più supportato.MOXy supporta non-string @XmlID nella versione 2.6.0?

[Exception [EclipseLink-50016] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.JAXBException 
Exception Description: Property [id] has an XmlID annotation but its type is not String.]**strong text** 

È un comportamento voluto o una regressione indesiderata?

Qual è il modo corretto per evitare tale errore durante la migrazione da MOXy 2.5.x?
E 'da utilizzare @XmlJavaTypeAdapter come descritto in questo post Marshaling a long primitive type using JAXB, che interessa anche il modo in cui l'oggetto stesso (e il relativo ID) viene serializzato a JSON (ad esempio, campo id di tipo Long diventa una stringa JSON?

risposta

6

Sì , è ancora supportato. In 2.6.0 non è supportato per default, ma deve essere abilitato tramite @XmlIDExtension annotazione.

https://eclipse.org/eclipselink/releases/2.6.php

Basta annotare dato campo con @XmlIDExtension. E 'anche possibile specificare proprietà di sistema org.eclipse.persistence.moxy.annotation.xml-id-extension pure verride comportamento predefinito a livello globale.

+0

Grazie mille! Per qualche motivo non sono riuscito a google per le informazioni nelle note di rilascio. –