Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-dev] How can I get the child entitites on a XML marshalling using @XmlID and @XmlIDREF annotations. I only get the parent entity and not the children nodes.

Hello all,

I want to generate an XML file of an object tree with 1:N
relashionship. I am using the @XmlID and @XmlIDREF annotations. The
entity "construtora" has N "empreendimentos" entitites related.

The root class is :

class ConstrutoraImpl {
  @XmlID
  private long id;

  String nome;
  String contato;
  String telefone;

  @XmlIDREF
  @XmlList
  private List<Empreendimento> empreendimentos;
}


class Empreeendimento {
  @XmlID
  private long id:
  String nome;
  String endereco;

  private Construtora construtora;
}


The java code to generate the XML file is:

JAXBContext context = (JAXBContext) JAXBContext.newInstance(new
Class[]{ConstrutoraImpl.class, EmpreendimentoImpl.class});
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(construtora, System.out);


The resulting XML file is:
<?xml version="1.0" encoding="UTF-8"?>
<construtora>
   <id>75</id>
   <empreendimentos>74 75</empreendimentos>
   <contato>contato1</contato>
   <nome>nome1</nome>
   <telefone>telefone1</telefone>
</construtora>


The "empreendimentos" child entities are missing. How can I generate a
XML with all the child entitites and the root entity?

All the Best,
André Moutinho


Back to the top