根据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字符串?
答案 0 :(得分:6)
是的,它仍然受支持。在2.6.0中,默认情况下不支持,但必须通过@XmlIDExtension
注释启用。
https://eclipse.org/eclipselink/releases/2.6.php
使用@XmlIDExtension
注释给定字段。也可以指定系统属性org.eclipse.persistence.moxy.annotation.xml-id-extension
以覆盖全局默认行为。