java - MOXy 2.6.0 版本是否支持非字符串@XmlID?

标签 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 字符串?

最佳答案

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

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

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

关于java - MOXy 2.6.0 版本是否支持非字符串@XmlID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564627/

相关文章:

python - Python解析JSON : how do I get has_key() working again after a change of format?

intellij-idea - JDK15 上的 JAXB : which jars are needed?

java - 在二维数组中搜索关键字

java - 如何在 Android 中使用 DefaultHttpClient 制作持久性 Cookie?

html - 如何使用 Handlebars 遍历 JSON 结构

javascript - 具有格式设置的 ExtJs 文本区域

java - JAXB:使用不同的命名空间解码类似的 XML

java - MOXy - 使用自包含类引导 JAXBContext 时出现 StackOverflowError

java - 使用 IDEA 8M1 运行 Swing 应用程序的问题

java - 在 for 循环中 hibernate ,总迭代时间为 2 分钟