MOXy在2.6.0版本中是否支持非字符串@XmlID?

时间:2015-04-10 14:56:39

标签: java json jaxb marshalling moxy

根据https://gist.github.com/VineetReynolds/5108580,JAXB规范要求使用@XmlID注释的元素为String。 MOXy未在 2.5.x 版本中强制执行此操作。
但是,对于版本 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**

这是一种想要的行为,还是一种不必要的回归?

从MOXy 2.5.x 迁移时,避免此类错误的正确方法是什么?
是否使用Marshaling a long primitive type using JAXB中描述的@XmlJavaTypeAdapter,这也影响了对象本身(及其ID)如何序列化为JSON的方式(例如,Long类型的id字段成为一个json字符串?

1 个答案:

答案 0 :(得分:6)

是的,它仍然受支持。在2.6.0中,默认情况下不支持,但必须通过@XmlIDExtension注释启用。

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

使用@XmlIDExtension注释给定字段。也可以指定系统属性org.eclipse.persistence.moxy.annotation.xml-id-extension以覆盖全局默认行为。