@XmlIDREF и @XmlID как упорядочить вложенную коллекцию? - PullRequest
0 голосов
/ 27 апреля 2018

Я использую ниже зависимость 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 игнорируется collection sectionEntitySet :

xml просмотр снимка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...