java - JAXB / Jackson 不允许为 HashSet 项目选择名称
问题描述
在这里,我们在父实体中将列表定义为一个集合:
@XmlElement(name = "picks")
@JacksonXmlElementWrapper(localName = "picks")
@OneToMany(fetch = FetchType.EAGER, mappedBy = "tour", cascade=CascadeType.ALL)
private Set<Pick> picks = new HashSet<Pick>();
并且子实体本身具有定义的名称:
@Entity
@Table(name = "picks")
@XmlAccessorType(XmlAccessType.FIELD)
@JacksonXmlRootElement(localName = "pick")
@XmlRootElement(name = "pick")
public class Pick {
然而,XML 包含根元素和子元素的“选择”!
<picks><picks><losPickId>2</losPickId><pickID>167</pickID>
看起来注释不起作用。有任何想法吗?
解决方案
尝试注释picks
:
@XmlElementWrapper(name = "picks")
@XmlElement(name = "pick")
推荐阅读
- c# - C# OpenTK 鼠标拾取不正确?
- json.net - 我的构建服务器如何在不将其签入源代码控制的情况下使用 JsonSchema 许可证?
- wordpress - 如何在我的原生 WP 评论表单中添加必填复选框?
- reactjs - 用 Jest/Enzyme 覆盖自定义钩子内的回调参数
- powershell - 展平文件夹结构并创建索引
- c# - 加密和解密音频剪辑到文件统一
- dependency-injection - TabBarController 路由
- curl - 在 AppleScript 中使用 curl 接收错误的字符集以将其移交给 macOS 上的 Outlook
- c# - 我有这段代码可以找到范围内的素数,请任何人告诉我为什么在嵌套循环中使用 i=2 ?
- azure-devops - 如何切换到同一代理上的不同用户以在 AzureDevOps 管道中运行特定任务