JAXB XML erro de cycle (Referencia Circular)

5 respostas
G

Ola

Tenho uma classe PESSOA que liga com classe ENDERECOS , FONES e EMAILS. Uso Hibernate JPA.

Preciso gerar um XML das informacoes mas nao consigo sair do erro

A cycle is detected in the object graph. This will cause infinitely deep XML: cadastro.database.Pessoa[idPessoa=459] -> cadastro.database.Pessoa[idPessoa=459]]

Estou usando anotacao @XMLTRANSIENT para evitar Referencia Circular mas nao consegui sair do erro

@XmlTransient
    public Pessoa getIdPessoa() {
        return idPessoa;
    }

Alguem tem alguma luz ?

Obrigado

5 Respostas

G

Acabei de achar a solucao !!! :slight_smile:

Seguinte : @XMLTRANSIENT funciona nas classes derivadas onde existe ligacao de Pessoa idPessoa.

O problema persistia pq minha classe Pessoa se liga com ela mesma atraves de uma FK.

A solucao foi a seguinte : Implementei a Recuperacao de Ciclo

public class Pessoa implements Serializable, CycleRecoverable {

onde ==>

public Object onCycleDetected(Context cntxt) {
          System.out.println( getClass().getName() + "  Detectou ciclo  "  );

          Pessoa p = new Pessoa();
          p.setIdPessoa(this.idPessoa);
          return p;
    }
lindberg713

Tive o mesmo problema de dependência ciclica e o @XMLTransient não funcionou.

Resolvi anotando o método ‘get’ ao invés da propriedade em si.

O por que não funciona anotando a propriedade, ai não parei pra ver.

Mas fica ai a dica e a solução que encontrei. Basta anotar o método ‘get’ ao invés da propriedade em si.

ViniGodoy

Por favor, ao postar tópicos NÃO USE APENAS LETRAS MAIÚSCULAS NO TÍTULO.

G

apos seculos deste problema resolvido agradeco as palavras de vini godoy … ajudaram mto

ViniGodoy

Não tinha visto que o Lindberg havia ressuscitado o tópico. Lindberg, quando for reviver um tópico, deixe isso claro no seu post.

Criado 20 de dezembro de 2010
Ultima resposta 21 de dez. de 2011
Respostas 5
Participantes 3