首页 > 解决方案 > 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>

看起来注释不起作用。有任何想法吗?

标签: javaspringannotationsjaxb

解决方案


尝试注释picks

@XmlElementWrapper(name = "picks")
@XmlElement(name = "pick")

推荐阅读