我在JAXB依赖项下面使用:
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-jaxb</artifactId>
<version>2.23.2</version>
</dependency>
我有一个包装类:
@XmlRootElement(name = "trainings")
public class ArrayListWrapper {
private List<TrainingEntity> trainings = new ArrayList();
//getters & setters here
}
TrainingEntity有一个属性:
@XmlIDREF
@XmlElementWrapper
public Set<ArticleEntity> getArticleEntities() {
return articleEntities;
}
ArticleEntity具有属性:
@JsonIgnore
@XmlID
public String getStringId() {
return article_id.toString();
}
@XmlIDREF
public Set<SectionEntity> getSectionEntitySet() {
return sectionEntitySet;
}
SectionEntity具有属性:
@JsonIgnore
@XmlID
public String getStringId() {
return section_id.toString();
}
我已配置资源:
// return all trainings => xml
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/all/xml")
public ArrayListWrapper getAllTrainingXml() {
ArrayListWrapper w = new ArrayListWrapper();
w.setTrainings(trainingRestService.getAllTrainings());
return w;
}
在输出XML中忽略集合 sectionEntitySet :